35 lines
875 B
Python
35 lines
875 B
Python
|
|
"""数据库初始化模块
|
|||
|
|
|
|||
|
|
独立部署时使用的数据库初始化,不依赖 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
|