chore: 修复数据库迁移中潜在的 BUG
This commit is contained in:
parent
8514f18985
commit
42b75979dd
@ -111,7 +111,7 @@ class PaddleXLayoutParser:
|
|||||||
logger.info("✅ 请求成功!")
|
logger.info("✅ 请求成功!")
|
||||||
return result
|
return result
|
||||||
else:
|
else:
|
||||||
logger.error("❌ 请求失败!")
|
logger.error(f"❌ 请求失败! {self.endpoint}")
|
||||||
try:
|
try:
|
||||||
error_result = response.json()
|
error_result = response.json()
|
||||||
logger.error(f"错误信息: {json.dumps(error_result, indent=2, ensure_ascii=False)}")
|
logger.error(f"错误信息: {json.dumps(error_result, indent=2, ensure_ascii=False)}")
|
||||||
|
|||||||
@ -10,8 +10,10 @@ from src.storage.db.models import Base, User
|
|||||||
from src.utils import logger
|
from src.utils import logger
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from server.utils.migrate import validate_database_schema
|
from server.utils.migrate import DatabaseMigrator, validate_database_schema
|
||||||
except ImportError:
|
except ImportError:
|
||||||
|
DatabaseMigrator = None
|
||||||
|
|
||||||
# 如果迁移工具不存在,使用简单的占位函数
|
# 如果迁移工具不存在,使用简单的占位函数
|
||||||
def validate_database_schema(db_path):
|
def validate_database_schema(db_path):
|
||||||
return True, []
|
return True, []
|
||||||
@ -49,19 +51,29 @@ class DBManager:
|
|||||||
|
|
||||||
def run_migrations(self):
|
def run_migrations(self):
|
||||||
"""运行数据库迁移"""
|
"""运行数据库迁移"""
|
||||||
# 在创建表之前先检查结构
|
if not os.path.exists(self.db_path):
|
||||||
if os.path.exists(self.db_path):
|
return
|
||||||
is_valid, issues = validate_database_schema(self.db_path)
|
|
||||||
|
|
||||||
if not is_valid:
|
if DatabaseMigrator is not None:
|
||||||
logger.warning("=" * 60)
|
migrator = DatabaseMigrator(self.db_path)
|
||||||
logger.warning("检测到数据库结构与当前模型不一致!")
|
try:
|
||||||
logger.warning("=" * 60)
|
migrator.run_migrations()
|
||||||
for issue in issues:
|
except Exception as exc:
|
||||||
logger.warning(f" ⚠️ {issue}")
|
logger.error(f"数据库迁移执行失败: {exc}")
|
||||||
logger.warning("")
|
else:
|
||||||
logger.warning("请运行以下 scripts/migrate_user_fields.py 来修复数据库结构:")
|
logger.warning("数据库迁移工具缺失,无法自动执行迁移")
|
||||||
logger.warning("=" * 60)
|
|
||||||
|
is_valid, issues = validate_database_schema(self.db_path)
|
||||||
|
|
||||||
|
if not is_valid:
|
||||||
|
logger.warning("=" * 60)
|
||||||
|
logger.warning("检测到数据库结构与当前模型不一致!")
|
||||||
|
logger.warning("=" * 60)
|
||||||
|
for issue in issues:
|
||||||
|
logger.warning(f" ⚠️ {issue}")
|
||||||
|
logger.warning("")
|
||||||
|
logger.warning("请运行 scripts/migrate_user_soft_delete.py 手动修复数据库结构")
|
||||||
|
logger.warning("=" * 60)
|
||||||
|
|
||||||
def get_session(self):
|
def get_session(self):
|
||||||
"""获取数据库会话"""
|
"""获取数据库会话"""
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user