fix(migration): 移除 DO $$ 块,Prisma 不支持 PL/pgSQL

Prisma migrate deploy 只支持简单 SQL 语句

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
hailin 2025-12-25 05:55:42 -08:00
parent 7ce71ad27b
commit 2e0df30473
1 changed files with 6 additions and 34 deletions

View File

@ -1,44 +1,16 @@
-- AlterTable: Add contract_no column to contract_signing_tasks
-- 合同编号格式: accountSequence-yyyyMMddHHmm (例如: 10001-202512251003)
-- 1. 首先添加可空的 contract_no 列(如果不存在)
DO $$
BEGIN
IF NOT EXISTS (
SELECT 1 FROM information_schema.columns
WHERE table_name = 'contract_signing_tasks'
AND column_name = 'contract_no'
) THEN
ALTER TABLE "contract_signing_tasks" ADD COLUMN "contract_no" VARCHAR(30);
END IF;
END $$;
-- 1. 添加可空的 contract_no 列
ALTER TABLE "contract_signing_tasks" ADD COLUMN "contract_no" VARCHAR(30);
-- 2. 为现有记录生成合同编号(基于 account_sequence 和 created_at
UPDATE "contract_signing_tasks"
SET "contract_no" = "account_sequence" || '-' || TO_CHAR("created_at", 'YYYYMMDDHH24MI')
WHERE "contract_no" IS NULL;
-- 3. 设置为 NOT NULL如果还不是
DO $$
BEGIN
IF EXISTS (
SELECT 1 FROM information_schema.columns
WHERE table_name = 'contract_signing_tasks'
AND column_name = 'contract_no'
AND is_nullable = 'YES'
) THEN
ALTER TABLE "contract_signing_tasks" ALTER COLUMN "contract_no" SET NOT NULL;
END IF;
END $$;
-- 3. 设置为 NOT NULL
ALTER TABLE "contract_signing_tasks" ALTER COLUMN "contract_no" SET NOT NULL;
-- 4. 添加唯一索引(如果不存在)
DO $$
BEGIN
IF NOT EXISTS (
SELECT 1 FROM pg_indexes
WHERE tablename = 'contract_signing_tasks'
AND indexname = 'contract_signing_tasks_contract_no_key'
) THEN
CREATE UNIQUE INDEX "contract_signing_tasks_contract_no_key" ON "contract_signing_tasks"("contract_no");
END IF;
END $$;
-- 4. 添加唯一索引
CREATE UNIQUE INDEX "contract_signing_tasks_contract_no_key" ON "contract_signing_tasks"("contract_no");