refactor(db): 使用迁移函数替代 create_all 初始化数据库

将数据库初始化过程从直接调用 `Base.metadata.create_all` 修改为调用新的 `check_and_migrate_database` 函数。

这一更改旨在实现更灵活的数据库模式管理,允许在不丢失现有数据的情况下,自动检查并添加新的列或表,从而增强了数据库迁移的健壮性。
This commit is contained in:
minecraft1024a
2025-08-17 14:31:58 +08:00
parent 4f1e59abf7
commit f12cc68d04
3 changed files with 220 additions and 3 deletions

View File

@@ -525,8 +525,9 @@ def initialize_database():
_engine = create_engine(database_url, **engine_kwargs)
_SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=_engine)
# 创建所有表
Base.metadata.create_all(bind=_engine)
# 调用新的迁移函数,它会处理表的创建和列的添加
from src.common.database.db_migration import check_and_migrate_database
check_and_migrate_database()
logger.info(f"SQLAlchemy数据库初始化成功: {config.database_type}")
return _engine, _SessionLocal
@@ -540,7 +541,7 @@ def get_db_session():
_, SessionLocal = initialize_database()
session = SessionLocal()
yield session
# session.commit()
#session.commit()
except Exception:
if session:
session.rollback()