优化所有alembic迁移脚本的离线模式支持,添加已存在对象检查逻辑,避免重复执行出错。 为各个迁移脚本添加对应的单元测试,覆盖核心场景保障逻辑正确性。 修改前端配置文件,将默认API地址切换为线上服务器8.138.234.141:4000。 新增本地数据备份文件wonderq-local-data.dump和项目发布包wonderq-admin-release-20260823-01.tar。
39 lines
1.4 KiB
Python
39 lines
1.4 KiB
Python
from importlib.util import module_from_spec, spec_from_file_location
|
|
from datetime import datetime
|
|
from pathlib import Path
|
|
|
|
|
|
MIGRATION_PATH = Path(__file__).parents[1] / "alembic" / "versions" / "0021_detail_records.py"
|
|
SPEC = spec_from_file_location("detail_records_migration", MIGRATION_PATH)
|
|
assert SPEC and SPEC.loader
|
|
MIGRATION = module_from_spec(SPEC)
|
|
SPEC.loader.exec_module(MIGRATION)
|
|
|
|
|
|
def test_detail_record_indexes_are_created_only_when_missing():
|
|
assert MIGRATION.missing_detail_record_indexes(set()) == {
|
|
"ix_DetailRecord_isActive",
|
|
"ix_DetailRecord_sortOrder",
|
|
}
|
|
assert MIGRATION.missing_detail_record_indexes({"ix_DetailRecord_isActive"}) == {
|
|
"ix_DetailRecord_sortOrder",
|
|
}
|
|
assert MIGRATION.missing_detail_record_indexes(
|
|
{"ix_DetailRecord_isActive", "ix_DetailRecord_sortOrder"}
|
|
) == set()
|
|
|
|
|
|
def test_detail_seed_rows_skip_existing_route_keys():
|
|
routes = [
|
|
{
|
|
"id": "family-route",
|
|
"title": "亲子路线",
|
|
"subtitle": "贵州亲子慢游",
|
|
"image": "https://example.test/family.jpg",
|
|
"sortOrder": 0,
|
|
}
|
|
]
|
|
rows = MIGRATION.build_detail_seed_rows(routes, set(), datetime(2026, 1, 1))
|
|
assert rows[0]["key"] == "family-route"
|
|
assert MIGRATION.build_detail_seed_rows(routes, {"family-route"}, datetime(2026, 1, 1)) == []
|