baodan/api/insurance/db/migrate_007.py

46 lines
1.3 KiB
Python
Raw Normal View History

"""迁移脚本:创建会话表。"""
import logging
from insurance.db.compat import db
def migrate():
"""创建 insurance_chat_sessions 表。"""
try:
# 检查表是否已存在
from sqlalchemy import inspect
inspector = inspect(db.engine)
if 'insurance_chat_sessions' in inspector.get_table_names():
logging.info("表 insurance_chat_sessions 已存在,跳过创建")
return
# 使用 SQLAlchemy 创建表
from insurance.models.chat_session import ChatSession
ChatSession.__table__.create(db.engine, checkfirst=True)
logging.info("表 insurance_chat_sessions 创建成功")
except Exception as e:
logging.error(f"创建表失败: {e}")
db.session.rollback()
raise
def downgrade():
"""删除 insurance_chat_sessions 表。"""
try:
from insurance.models.chat_session import ChatSession
ChatSession.__table__.drop(db.engine, checkfirst=True)
logging.info("表 insurance_chat_sessions 已删除")
except Exception as e:
logging.error(f"删除表失败: {e}")
db.session.rollback()
raise
if __name__ == "__main__":
# 直接运行迁移
import sys
sys.path.insert(0, ".")
from app import app
with app.app_context():
migrate()
print("迁移完成")