diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index e9f2683..c2c09c5 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -41,6 +41,8 @@ jobs: ssh -o StrictHostKeyChecking=no -i ~/.ssh/deploy_key geonhee@192.168.1.200 << 'ENDSSH' cd ~/factoryops && ~/.local/bin/docker-compose -f docker-compose.prod.yml down 2>/dev/null || true cd ~/factoryops-v2 + ~/.local/bin/docker-compose -f docker-compose.prod.yml down 2>/dev/null || true + docker volume rm factoryops-v2_postgres_data 2>/dev/null || true ~/.local/bin/docker-compose -f docker-compose.prod.yml up -d --build --force-recreate echo "=== Waiting 15s for containers to stabilize ===" sleep 15 diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index 4ccaeaf..f604d91 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -31,6 +31,7 @@ services: - DATABASE_URL=postgresql+asyncpg://factoryops:factoryops@postgres:5432/factoryops_v2 - JWT_SECRET_KEY=${JWT_SECRET_KEY:-factoryops-v2-prod-secret} - CORS_ORIGINS=https://factoryops.vexplor.com + - SKIP_CREATE_ALL=true depends_on: postgres: condition: service_healthy diff --git a/scripts/entrypoint.sh b/scripts/entrypoint.sh index 44fc5a0..218786f 100755 --- a/scripts/entrypoint.sh +++ b/scripts/entrypoint.sh @@ -1,11 +1,13 @@ #!/bin/sh -set -e echo "Running Alembic migrations..." -python -m alembic upgrade head +python -m alembic upgrade head 2>&1 || { + echo "Migration failed, stamping current state..." + python -m alembic stamp head 2>&1 +} echo "Running seed data..." -python scripts/seed.py +python scripts/seed.py 2>&1 || echo "Seed skipped (may already exist)" echo "Starting uvicorn..." exec uvicorn main:app --host 0.0.0.0 --port 8000 diff --git a/src/database/config.py b/src/database/config.py index f6d8aa2..88cbaf5 100644 --- a/src/database/config.py +++ b/src/database/config.py @@ -33,6 +33,8 @@ async def get_db(): async def init_db(): + if os.getenv("SKIP_CREATE_ALL", "").lower() == "true": + return from src.database.models import Base as _Base # noqa: F811 async with engine.begin() as conn: