- 数据库: DROP project_finances.status 列(幂等迁移) - 后端: routes.py移除status过滤(12处), helpers.py修复SQL - 后端: 删除migrate_move_pending_to_plan, seed_data移除status - 前端: finance.js/performance.js/utils.js全部清除status引用 - finFilter默认值改为projects - 版本号 v1.0.0.23
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()
|