fix: rename upgrade() to migrate() in migrate_017 so it runs automatically
The migration runner (db/__init__.py) calls module.migrate() with no arguments, but migrate_017 defined upgrade(engine). This meant the slides_config_json column was never added to insurance_ppt_templates in production, causing a 500 on /insurance/ppt/render-options.
This commit is contained in:
parent
63c7e87ea7
commit
8e897276e7
@ -10,11 +10,12 @@ from sqlalchemy import text
|
|||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
def upgrade(engine):
|
def migrate():
|
||||||
"""执行迁移。"""
|
"""执行迁移。"""
|
||||||
with engine.begin() as conn:
|
from insurance.db.compat import db
|
||||||
|
|
||||||
# 检查列是否已存在
|
# 检查列是否已存在
|
||||||
result = conn.execute(text(
|
result = db.session.execute(text(
|
||||||
"SELECT COUNT(*) FROM information_schema.columns "
|
"SELECT COUNT(*) FROM information_schema.columns "
|
||||||
"WHERE table_name = 'insurance_ppt_templates' AND column_name = 'slides_config_json'"
|
"WHERE table_name = 'insurance_ppt_templates' AND column_name = 'slides_config_json'"
|
||||||
))
|
))
|
||||||
@ -22,18 +23,19 @@ def upgrade(engine):
|
|||||||
logger.info("slides_config_json 列已存在,跳过迁移")
|
logger.info("slides_config_json 列已存在,跳过迁移")
|
||||||
return
|
return
|
||||||
|
|
||||||
conn.execute(text(
|
db.session.execute(text(
|
||||||
"ALTER TABLE insurance_ppt_templates ADD COLUMN slides_config_json TEXT"
|
"ALTER TABLE insurance_ppt_templates ADD COLUMN slides_config_json TEXT"
|
||||||
))
|
))
|
||||||
|
db.session.commit()
|
||||||
logger.info("已添加 slides_config_json 列")
|
logger.info("已添加 slides_config_json 列")
|
||||||
|
|
||||||
# 为现有模板填充默认 slides_config
|
# 为现有模板填充默认 slides_config
|
||||||
_seed_default_slides_config(conn)
|
_seed_default_slides_config(db)
|
||||||
|
|
||||||
|
|
||||||
def _seed_default_slides_config(conn):
|
def _seed_default_slides_config(db):
|
||||||
"""为现有模板填充默认的逐页配置。"""
|
"""为现有模板填充默认的逐页配置。"""
|
||||||
templates = conn.execute(text(
|
templates = db.session.execute(text(
|
||||||
"SELECT id, plan_type, required_page_types_json FROM insurance_ppt_templates WHERE status = 1"
|
"SELECT id, plan_type, required_page_types_json FROM insurance_ppt_templates WHERE status = 1"
|
||||||
)).fetchall()
|
)).fetchall()
|
||||||
|
|
||||||
@ -48,10 +50,11 @@ def _seed_default_slides_config(conn):
|
|||||||
continue
|
continue
|
||||||
|
|
||||||
slides_config = _build_default_slides_config(page_types, plan_type)
|
slides_config = _build_default_slides_config(page_types, plan_type)
|
||||||
conn.execute(text(
|
db.session.execute(text(
|
||||||
"UPDATE insurance_ppt_templates SET slides_config_json = :config WHERE id = :id"
|
"UPDATE insurance_ppt_templates SET slides_config_json = :config WHERE id = :id"
|
||||||
), {"config": json.dumps(slides_config, ensure_ascii=False), "id": tpl_id})
|
), {"config": json.dumps(slides_config, ensure_ascii=False), "id": tpl_id})
|
||||||
|
|
||||||
|
db.session.commit()
|
||||||
logger.info(f"已为 {len(templates)} 个模板填充默认 slides_config")
|
logger.info(f"已为 {len(templates)} 个模板填充默认 slides_config")
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user