baodan/api/insurance/db/database.py

35 lines
875 B
Python
Raw Normal View History

"""数据库初始化模块
独立部署时使用的数据库初始化不依赖 Dify 扩展
"""
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
# 创建数据库实例
db = SQLAlchemy()
def init_db(app: Flask) -> None:
"""初始化数据库连接。"""
db.init_app(app)
# 创建所有表
with app.app_context():
# 导入所有模型以确保它们被注册
from insurance.models import (
wecom_user, recommendation, operation_log,
chat_record, chat_session, role, prompt,
template, notification, department,
)
db.create_all()
print("[database] 数据库初始化完成")
# 执行数据库迁移
from insurance.db import run_migrations
run_migrations()
def get_db() -> SQLAlchemy:
"""获取数据库实例。"""
return db