- data_fixes 新增 migrate_fix_expense_status - 将 NULL/空/待审批 的费用状态统一修正为「计入费用」 - 服务启动时自动执行,幂等安全 - 版本号 v1.0.0.6
34 lines
1.3 KiB
Python
34 lines
1.3 KiB
Python
"""migrations/__init__.py — 数据库自愈机制入口
|
||
|
||
应用启动时调用 run_migrations(),自动:
|
||
1. 建表(CREATE TABLE IF NOT EXISTS)
|
||
2. 加列(SHOW COLUMNS 检查后 ALTER TABLE ADD COLUMN)
|
||
3. 数据修正(UPDATE 修复脏数据/变更枚举值)
|
||
4. 初始化默认用户和示例数据(仅空库时)
|
||
|
||
参考 SalesManager 的 migrations/ 模式,所有迁移函数幂等可重复执行。
|
||
"""
|
||
|
||
|
||
def run_migrations():
|
||
"""执行所有迁移(顺序执行,幂等)
|
||
|
||
延迟 import 避免 circular import(migrations 各子模块依赖 flask_app 的 db/_exec 等)。
|
||
"""
|
||
from migrations.tables import migrate_create_tables
|
||
from migrations.columns import migrate_add_columns
|
||
from migrations.data_fixes import migrate_fix_task_status, migrate_rename_tenant, migrate_drop_product_fields, migrate_fix_service_fee_standard, migrate_fix_expense_status
|
||
from migrations.data_split import migrate_data_split
|
||
from migrations.seed import migrate_seed_users, migrate_seed_demo_data
|
||
|
||
migrate_create_tables()
|
||
migrate_add_columns()
|
||
migrate_fix_task_status()
|
||
migrate_rename_tenant()
|
||
migrate_drop_product_fields()
|
||
migrate_fix_service_fee_standard()
|
||
migrate_fix_expense_status()
|
||
migrate_data_split()
|
||
migrate_seed_users()
|
||
migrate_seed_demo_data()
|