baodan/api/insurance/db/migrate_031.py

41 lines
1.4 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.

"""迁移 031增加海报模板布局与格式兼容字段。"""
import logging
from sqlalchemy import inspect, text
logger = logging.getLogger(__name__)
def migrate():
from insurance.db.compat import db
columns = {
item["name"]
for item in inspect(db.engine).get_columns("poster_templates")
}
additions = {
"layout_key": "VARCHAR(50)",
"supported_modes": "TEXT",
"supported_formats": "TEXT",
}
for name, column_type in additions.items():
if name not in columns:
db.session.execute(text(
f"ALTER TABLE poster_templates ADD COLUMN {name} {column_type}"
))
db.session.execute(text(
"UPDATE poster_templates SET layout_key = :layout "
"WHERE layout_key IS NULL OR layout_key = ''"
), {"layout": "legacy"})
db.session.execute(text(
"UPDATE poster_templates SET supported_modes = :modes "
"WHERE supported_modes IS NULL OR supported_modes = ''"
), {"modes": '["single","long"]'})
db.session.execute(text(
"UPDATE poster_templates SET supported_formats = :formats "
"WHERE supported_formats IS NULL OR supported_formats = ''"
), {"formats": '["single_2_3","single_9_16","long_1242_auto"]'})
db.session.commit()
logger.info("[migrate_031] 海报模板布局与格式兼容字段迁移完成")