diff --git a/manage_fastapi/context.py b/manage_fastapi/context.py index 5b8dc20..d1a26b0 100644 --- a/manage_fastapi/context.py +++ b/manage_fastapi/context.py @@ -23,6 +23,7 @@ def validate_app(cls, values: dict): class ProjectContext(BaseModel): name: str folder_name: str + snake_name: str packaging: PackageManager username: Optional[str] = None @@ -51,6 +52,7 @@ def validate_project(cls, values: dict): except subprocess.CalledProcessError: ... values["folder_name"] = values["name"].lower().replace(" ", "-").strip() + values["snake_name"] = values["folder_name"].replace("-", "_") values["year"] = datetime.today().year return values diff --git a/manage_fastapi/templates/project/cookiecutter.json b/manage_fastapi/templates/project/cookiecutter.json index 2911aad..16e35f5 100644 --- a/manage_fastapi/templates/project/cookiecutter.json +++ b/manage_fastapi/templates/project/cookiecutter.json @@ -5,6 +5,7 @@ "env": ".env", "fastapi": "{{ cookiecutter.fastapi }}", "folder_name": "{{ cookiecutter.folder_name }}", + "snake_name": "{{ cookiecutter.snake_name }}", "gitignore": ".gitignore", "license": "{{ cookiecutter.license }}", "name": "{{ cookiecutter.name }}", diff --git a/manage_fastapi/templates/project/{{ cookiecutter.folder_name }}/docker-compose.yaml b/manage_fastapi/templates/project/{{ cookiecutter.folder_name }}/docker-compose.yaml index 73d648b..902fc6d 100644 --- a/manage_fastapi/templates/project/{{ cookiecutter.folder_name }}/docker-compose.yaml +++ b/manage_fastapi/templates/project/{{ cookiecutter.folder_name }}/docker-compose.yaml @@ -1,8 +1,14 @@ version: "3.8" +{% if cookiecutter.database == "Postgres" or cookiecutter.database == "MySQL" %} +volumes: + {{ cookiecutter.snake_name }}_database_data: {} +{% endif %} + services: app: build: . + container_name: {{ cookiecutter.snake_name }}_app env_file: - .env ports: @@ -11,6 +17,9 @@ services: {% if cookiecutter.database == "Postgres" %} database: image: postgres:12 + container_name: {{ cookiecutter.snake_name }}_database + volumes: + - {{ cookiecutter.snake_name }}_database_data:/var/lib/postgresql/data:Z env_file: - .env ports: @@ -18,6 +27,9 @@ services: {% elif cookiecutter.database == "MySQL" %} database: image: mysql:5.7 + container_name: { { cookiecutter.snake_name } }_database + volumes: + - {{ cookiecutter.snake_name }}_database_data:/var/lib/mysql:Z env_file: - .env ports: