- 为后端Admin新增migration_compat工具,支持离线迁移时的基线资源检查,重构全部alembic迁移脚本适配离线模式,避免重复创建已存在的数据库表和字段 - 完善初始数据库迁移脚本,添加默认部门种子数据,新增ConciergeAdvisor详情字段从JSON到JSONB的类型转换迁移 - 小程序端新增图片资源解析工具resolveNetworkImage,实现本地静态资源到CDN的自动映射,添加图片加载容错降级机制 - 完善HeroSlide类型定义,新增actionLabel字段,优化首页轮播组件的文本渲染与错误处理逻辑 - 新增对应测试用例验证迁移路径正确性与前端数据处理逻辑 - 新增临时 brainstorm UI对比草稿与开发临时状态文件
38 lines
1.2 KiB
Python
38 lines
1.2 KiB
Python
"""Helpers for offline generation against the current initial baseline."""
|
|
|
|
from . import models # noqa: F401
|
|
from .database import Base
|
|
|
|
|
|
def baseline_table_names() -> set[str]:
|
|
return set(Base.metadata.tables)
|
|
|
|
|
|
def baseline_column_names(table_name: str) -> set[str]:
|
|
table = Base.metadata.tables.get(table_name)
|
|
return set(table.columns.keys()) if table is not None else set()
|
|
|
|
|
|
def baseline_index_names(table_name: str) -> set[str]:
|
|
table = Base.metadata.tables.get(table_name)
|
|
return {index.name for index in table.indexes if index.name} if table is not None else set()
|
|
|
|
|
|
def baseline_foreign_keys(table_name: str) -> list[dict]:
|
|
table = Base.metadata.tables.get(table_name)
|
|
if table is None:
|
|
return []
|
|
return [
|
|
{
|
|
"name": foreign_key.name,
|
|
"constrained_columns": [foreign_key.parent.name],
|
|
"referred_table": foreign_key.column.table.name,
|
|
"referred_columns": [foreign_key.column.name],
|
|
"options": {
|
|
"ondelete": foreign_key.ondelete,
|
|
"onupdate": foreign_key.onupdate,
|
|
},
|
|
}
|
|
for foreign_key in table.foreign_keys
|
|
]
|