diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index edf8752..f1518a6 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -60,6 +60,8 @@ jobs: key: ${{ secrets.EC2_SSH_KEY }} script: | aws ecr get-login-password --region ${{ secrets.AWS_REGION }} | docker login --username AWS --password-stdin ${{ env.ECR_REGISTRY }} + cp ~/app-path/.env.prod ./.env docker-compose -f docker-compose.prod.yml down docker-compose -f docker-compose.prod.yml pull + docker-compose -f docker-compose.prod.yml run --rm -e MODE=prod fastapi alembic upgrade head docker-compose -f docker-compose.prod.yml up -d \ No newline at end of file diff --git a/alembic.ini b/alembic.ini index 4f0b631..f182412 100644 --- a/alembic.ini +++ b/alembic.ini @@ -63,7 +63,7 @@ version_path_separator = os # are written from script.py.mako # output_encoding = utf-8 -;sqlalchemy.url = +sqlalchemy.url = [post_write_hooks] # post_write_hooks defines scripts or Python functions that are run diff --git a/alembic/versions/4e97dd8fe7e3_add_monthly_study_date_to_user.py b/alembic/versions/4e97dd8fe7e3_add_monthly_study_date_to_user.py new file mode 100644 index 0000000..13f3456 --- /dev/null +++ b/alembic/versions/4e97dd8fe7e3_add_monthly_study_date_to_user.py @@ -0,0 +1,34 @@ +"""add monthly_study_date to user + +Revision ID: 4e97dd8fe7e3 +Revises: e41ef1fb1ba4 +Create Date: 2025-06-15 10:21:57.464451 +""" +from alembic import op +import sqlalchemy as sa + +# revision identifiers, used by Alembic. +revision = '4e97dd8fe7e3' +down_revision = 'e41ef1fb1ba4' +branch_labels = None +depends_on = None + + +def upgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + op.add_column( + 'user', + sa.Column( + 'monthly_study_date', + sa.JSON(), + nullable=True, + comment="학습한 날짜" + ) + ) + # ### end Alembic commands ### + + +def downgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + op.drop_column('user', 'monthly_study_date') + # ### end Alembic commands ### \ No newline at end of file diff --git a/alembic/versions/__init__.py b/alembic/versions/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/alembic/versions/e41ef1fb1ba4_base.py b/alembic/versions/e41ef1fb1ba4_base.py new file mode 100644 index 0000000..ce9a2db --- /dev/null +++ b/alembic/versions/e41ef1fb1ba4_base.py @@ -0,0 +1,21 @@ +"""stub baseline for existing DB + +Revision ID: e41ef1fb1ba4 +Revises: +Create Date: 2025-06-13 12:00:00 +""" +from alembic import op +import sqlalchemy as sa + +# 리비전 식별자 +revision = 'e41ef1fb1ba4' +down_revision = None +branch_labels = None +depends_on = None + +def upgrade(): + # 이 stub 에선 아무 작업도 하지 않습니다. + pass + +def downgrade(): + pass \ No newline at end of file diff --git a/database/session.py b/database/session.py index 1203661..76961b9 100644 --- a/database/session.py +++ b/database/session.py @@ -3,10 +3,15 @@ from dotenv import load_dotenv import os -load_dotenv(".env.dev") +MODE = os.getenv("MODE", "dev") +if MODE == "dev": + load_dotenv(".env.dev") +elif MODE == "prod": + pass + user = os.getenv("DB_USER", "") password = quote_plus(os.getenv("DB_PASSWORD", "")) -host = os.getenv("DB_HOST", "") +host = (os.getenv("DB_HOST") or os.getenv("DB_URL") or "") port = os.getenv("DB_PORT", "") database = os.getenv("DB_NAME", "") diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index 4ed1ea1..9ff274a 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -11,4 +11,6 @@ services: ports: - "8080:8080" env_file: - - .env.prod \ No newline at end of file + - .env.prod + environment: + - MODE=prod \ No newline at end of file