文件
hyb-oa/scripts/qa/check-local-migration-drift.sh

39 行
1.1 KiB
Bash
可执行文件

此文件含有模棱两可的 Unicode 字符
此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。
#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
SERVER_DIR="$ROOT_DIR/server"
REPORT_DIR="${MIGRATION_DRIFT_REPORT_DIR:-$ROOT_DIR/artifacts/qa-flow/migration-drift-$(date +%Y%m%d-%H%M%S)}"
STATUS_LOG="$REPORT_DIR/prisma-migrate-status.txt"
mkdir -p "$REPORT_DIR"
echo ">>> [migration-drift] Prisma migrate status(只读)"
set +e
(
cd "$SERVER_DIR"
npx prisma migrate status
) >"$STATUS_LOG" 2>&1
status=$?
set -e
cat "$STATUS_LOG"
if [[ "$status" -eq 0 ]]; then
echo "[migration-drift][PASS] 当前 DATABASE_URL 对应数据库与迁移目录一致"
echo "[migration-drift] report=$STATUS_LOG"
exit 0
fi
echo "[migration-drift][WARN] Prisma migrate status 返回非 0:$status"
echo "[migration-drift][WARN] 未执行 migrate reset,也未修改数据库。"
echo "[migration-drift][WARN] 安全替代回归命令:bash scripts/qa/run-isolated-regression-dedup.sh"
echo "[migration-drift][WARN] 若确需重建本地开发库,必须先人工确认备份与影响范围。"
echo "[migration-drift] report=$STATUS_LOG"
if [[ "${MIGRATION_DRIFT_STRICT:-0}" == "1" ]]; then
exit "$status"
fi
exit 0