修复(08-08-production-deployment-execution): 明确终止迁移回滚窗口依据
这个提交包含在:
@@ -4,6 +4,8 @@
|
||||
# runs before deploy.sh is allowed to synchronize or execute migrate deploy.
|
||||
set -euo pipefail
|
||||
|
||||
TERMINATION_MIGRATION_ID="20260807193000_contract_registry_termination_workspace"
|
||||
|
||||
fail() {
|
||||
printf '[production-preflight][FAIL] code=%s\n' "$1" >&2
|
||||
exit 1
|
||||
@@ -275,13 +277,19 @@ expected_pending_csv="$(printf '%s' "$EXPECTED_PENDING_MIGRATIONS_CSV" | tr ','
|
||||
|| fail "PROD_MIGRATION_PENDING_ALLOWLIST_MISMATCH"
|
||||
pass "migration_reconciliation pending=${actual_pending_csv:-none}"
|
||||
|
||||
terminated_count="$(db_value "SELECT count(*) FROM contract_registry WHERE status = 'terminated';" | tr -d '\r\n')" \
|
||||
|| fail "PROD_TERMINATED_COUNT_UNAVAILABLE"
|
||||
[[ "$terminated_count" =~ ^[0-9]+$ ]] || fail "PROD_TERMINATED_COUNT_INVALID"
|
||||
if [[ "$terminated_count" -eq 0 ]]; then
|
||||
pass "rollbackWindow=OPEN terminatedRows=0"
|
||||
[[ -n "${candidate_set[$TERMINATION_MIGRATION_ID]:-}" ]] \
|
||||
|| fail "PROD_TERMINATION_MIGRATION_NOT_IN_CANDIDATE"
|
||||
if [[ -z "${applied_set[$TERMINATION_MIGRATION_ID]:-}" ]]; then
|
||||
pass "rollbackWindow=OPEN terminatedRows=0 basis=migration_not_applied"
|
||||
else
|
||||
pass "rollbackWindow=CLOSED terminatedRows=${terminated_count}"
|
||||
terminated_count="$(db_value "SELECT count(*) FROM contract_registry WHERE status = 'terminated';" | tr -d '\r\n')" \
|
||||
|| fail "PROD_TERMINATED_COUNT_UNAVAILABLE"
|
||||
[[ "$terminated_count" =~ ^[0-9]+$ ]] || fail "PROD_TERMINATED_COUNT_INVALID"
|
||||
if [[ "$terminated_count" -eq 0 ]]; then
|
||||
pass "rollbackWindow=OPEN terminatedRows=0 basis=terminated_status_count"
|
||||
else
|
||||
pass "rollbackWindow=CLOSED terminatedRows=${terminated_count} basis=terminated_status_count"
|
||||
fi
|
||||
fi
|
||||
|
||||
pass "migration_status_and_target_checks_complete"
|
||||
|
||||
@@ -773,6 +773,9 @@ for (const requiredFragment of [
|
||||
'PROD_TARGET_BUILD_SHA_INVALID',
|
||||
'PROD_TARGET_VITE_BUILD_SHA_INVALID',
|
||||
'PROD_TARGET_BUILD_SHA_MISMATCH',
|
||||
'PROD_TERMINATION_MIGRATION_NOT_IN_CANDIDATE',
|
||||
'basis=migration_not_applied',
|
||||
'basis=terminated_status_count',
|
||||
'PRISMA_STATUS_BEGIN',
|
||||
'FROM "_prisma_migrations"',
|
||||
'logged_failure',
|
||||
|
||||
在新工单中引用
屏蔽一个用户