From 2e0df3047368338e8be96aec5441eba22296d921 Mon Sep 17 00:00:00 2001 From: hailin Date: Thu, 25 Dec 2025 05:55:42 -0800 Subject: [PATCH] =?UTF-8?q?fix(migration):=20=E7=A7=BB=E9=99=A4=20DO=20$$?= =?UTF-8?q?=20=E5=9D=97=EF=BC=8CPrisma=20=E4=B8=8D=E6=94=AF=E6=8C=81=20PL/?= =?UTF-8?q?pgSQL?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Prisma migrate deploy 只支持简单 SQL 语句 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- .../migration.sql | 40 +++---------------- 1 file changed, 6 insertions(+), 34 deletions(-) diff --git a/backend/services/planting-service/prisma/migrations/20241225100000_add_contract_no/migration.sql b/backend/services/planting-service/prisma/migrations/20241225100000_add_contract_no/migration.sql index a44c0d58..ca997a68 100644 --- a/backend/services/planting-service/prisma/migrations/20241225100000_add_contract_no/migration.sql +++ b/backend/services/planting-service/prisma/migrations/20241225100000_add_contract_no/migration.sql @@ -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");