Files
opc-manager/backend/migrations/__init__.py
mac f44f7eab9e feat: 项目流水拆分为确收与回款+费用明细两Tab + 数据迁移
后端:
- 新增 expense_data TEXT 列(columns.py迁移)
- 新增 data_split 迁移:旧 budget_data cost/paid → expense_data(幂等)
- sum_budget cost/paid → sum_expense cost/paid(routes.py/helpers.py)
- TABLES 配置加入 expense_data

前端:
- 项目详情弹窗Tab:基本信息→确收与回款→费用明细→执行信息→任务管理→活动
- 确收与回款Tab:月份/确收/毛利/回款/备注
- 费用明细Tab:月份/费用类型/应付/已付/备注
- 项目表格三视图(月/季/总)cost/paid来源切换为expense_data
- 保存逻辑分两路: budget_data(rev/gross/payment)+expense_data(cost/paid)
2026-07-06 21:34:48 +08:00

33 lines
1.2 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""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 importmigrations 各子模块依赖 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
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_data_split()
migrate_seed_users()
migrate_seed_demo_data()