fix: resolve database and session initialization issues

- Switch from SQLAlchemy sessions to filesystem sessions to avoid race
  conditions with multiple gunicorn workers trying to create the sessions
  table simultaneously
- Update Alembic env.py to use a minimal Flask app without Flask-Session
  to prevent session table creation during migrations
- Add data directory creation to entrypoint.sh for clean container starts
- Configure test environment to use filesystem sessions with temp directory

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2025-12-22 18:57:57 -07:00
co-authored by Claude Opus 4.5
parent 8c3b333f61
commit b38fc328f9
4 changed files with 43 additions and 9 deletions
+4 -2
View File
@@ -51,8 +51,10 @@ def create_app(config_name: str | None = None) -> Flask:
bcrypt.init_app(app)
csrf.init_app(app)
# Initialize session with SQLAlchemy backend
app.config["SESSION_SQLALCHEMY"] = db
# Initialize session with filesystem backend
# Ensure session directory exists
session_dir = Path(app.config.get("SESSION_FILE_DIR", data_dir / "sessions"))
session_dir.mkdir(parents=True, exist_ok=True)
session.init_app(app)
# Register blueprints