fix(db): 禁止修改已发布迁移并分批兼容旧库

This commit is contained in:
yml2213
2026-11-07 17:51:34 +08:00
parent 7b68d9b60a
commit 8ef8c61862
12 changed files with 253 additions and 123 deletions
@@ -0,0 +1,27 @@
import assert from 'node:assert/strict'
import test from 'node:test'
import { changedPublishedMigrations } from './migration-integrity.js'
test('迁移完整性:新增迁移允许,已发布迁移任何修改都拒绝', () => {
assert.deepEqual(
changedPublishedMigrations(
[
'A\tsrc/db/migrations/153_new_feature.sql',
'M\tsrc/db/migrations/146_voucher_consume_fallback_channel.sql',
'D\tsrc/db/migrations/145_fulfillment_current_attempt_latest.sql',
].join('\n'),
),
[
'M src/db/migrations/146_voucher_consume_fallback_channel.sql',
'D src/db/migrations/145_fulfillment_current_attempt_latest.sql',
],
)
})
test('迁移完整性:保护范围不由固定版本号截断', () => {
assert.deepEqual(
changedPublishedMigrations('M\tsrc/db/migrations/120_fulfillment_routing_invariants.sql'),
['M src/db/migrations/120_fulfillment_routing_invariants.sql'],
)
})