签入版本

This commit is contained in:
2026-09-12 18:57:19 +08:00
parent d45b61d808
commit 2857e0f2da
295 changed files with 20713 additions and 13125 deletions
+57
View File
@@ -0,0 +1,57 @@
"""
多数据库建表 + 种子数据脚本(方案 A)
=============================================================
在任何受支持的数据库(mysql/pgsql/mssql/sqlite/oracle)上初始化系统:
1. 按 .env 的 DB_DRIVER 连接目标库
2. db.create_all() 建全部表(方言中立,各库通用)
3. 写入种子数据(admin 超管、角色、基础菜单/字典/配置)
用法:
# 切换数据库只需改 .env(DB_DRIVER + 账号),然后执行:
python scripts/setup_db.py
# 仅补种子(表已存在)
python -c "from scripts.setup_db import seed_only; seed_only()"
"""
import logging
import os
import sys
# 将项目根加入 sys.path(脚本以 `python scripts/xxx.py` 运行时 cwd 是 scripts/)
ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
if ROOT not in sys.path:
sys.path.insert(0, ROOT)
from src.app import create_app # noqa: E402
from src.core.database import db # noqa: E402
from config import DatabaseConfig, friendly_db_error # noqa: E402
logging.basicConfig(level=logging.INFO, format="%(levelname)s %(name)s: %(message)s")
def setup_database():
"""建表 + 种子(连接失败时给出友好中文提示)"""
app = create_app()
print(f"目标数据库: {DatabaseConfig.SQLALCHEMY_DATABASE_URI}")
try:
with app.app_context():
db.create_all()
print("已建表(create_all)")
from scripts.seed_data import seed_all
seed_all()
except Exception as e:
raise SystemExit(f"建表/初始化失败:{friendly_db_error(e)}")
def seed_only():
"""仅补种子数据(表已存在时)"""
app = create_app()
with app.app_context():
from scripts.seed_data import seed_all
seed_all()
if __name__ == "__main__":
setup_database()