Database Infrastructure: - Added Alembic migration system (alembic.ini, env.py) - Migration 001: Initial schema - Migration 004: Stat materialized views (enhanced) - Migration 005: Composite indexes for performance - operations.py: Session injection support for test isolation - session.py: Enhanced session management Application Updates: - main.py: Integration with new database infrastructure - health.py: Enhanced health checks with pool monitoring Integration Tests: - conftest.py: Session injection pattern for reliable tests - test_operations.py: Database operations tests - test_migrations.py: Migration verification tests Session injection pattern enables: - Production: Auto-commit per operation - Testing: Shared session with automatic rollback - Transactions: Multiple ops, single commit 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
66 lines
1.2 KiB
INI
66 lines
1.2 KiB
INI
# Alembic configuration file for Paper Dynasty Game Engine
|
|
|
|
[alembic]
|
|
# Path to migration scripts
|
|
script_location = alembic
|
|
|
|
# Template used to generate migration files
|
|
file_template = %%(rev)s_%%(slug)s
|
|
|
|
# Output encoding
|
|
output_encoding = utf-8
|
|
|
|
# Truncate database identifiers to this length
|
|
truncate_slug_length = 40
|
|
|
|
# Revision IDs to use for new migrations (default is 12 char hex)
|
|
revision_environment = false
|
|
|
|
# sourceless mode - ignore .pyc files
|
|
sourceless = false
|
|
|
|
# version path separator (OS agnostic)
|
|
version_path_separator = os
|
|
|
|
[post_write_hooks]
|
|
# Optional Ruff formatting after generating migrations
|
|
# hooks = ruff
|
|
# ruff.type = console_scripts
|
|
# ruff.entrypoint = ruff
|
|
# ruff.options = format REVISION_SCRIPT_FILENAME
|
|
|
|
# Logging configuration
|
|
[loggers]
|
|
keys = root,sqlalchemy,alembic
|
|
|
|
[handlers]
|
|
keys = console
|
|
|
|
[formatters]
|
|
keys = generic
|
|
|
|
[logger_root]
|
|
level = WARN
|
|
handlers = console
|
|
qualname =
|
|
|
|
[logger_sqlalchemy]
|
|
level = WARN
|
|
handlers =
|
|
qualname = sqlalchemy.engine
|
|
|
|
[logger_alembic]
|
|
level = INFO
|
|
handlers =
|
|
qualname = alembic
|
|
|
|
[handler_console]
|
|
class = StreamHandler
|
|
args = (sys.stderr,)
|
|
level = NOTSET
|
|
formatter = generic
|
|
|
|
[formatter_generic]
|
|
format = %(levelname)-5.5s [%(name)s] %(message)s
|
|
datefmt = %H:%M:%S
|