46 lines
1.3 KiB
Python
46 lines
1.3 KiB
Python
|
|
"""迁移脚本:创建会话表。"""
|
||
|
|
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("迁移完成")
|