From d581fad237c76c357d0a2f1c1e74e4e0bc2489b1 Mon Sep 17 00:00:00 2001 From: andyesfly <35127884@qq.com> Date: Sat, 19 Sep 2026 15:12:21 +0800 Subject: [PATCH] =?UTF-8?q?refactor(database):=20=E6=94=BE=E5=AE=BDsurvey?= =?UTF-8?q?=5Fsop=5Fresult=E5=9B=9E=E6=89=A7=E5=AD=97=E6=AE=B5=E7=9A=84?= =?UTF-8?q?=E9=95=BF=E5=BA=A6=E9=99=90=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将receipt_value字段从VARCHAR(1024)改为TEXT,解决多图回执存储超限问题,添加幂等执行判断 --- .../20260915_survey_sop_receipt.sql | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 database/migrations/20260915_survey_sop_receipt.sql diff --git a/database/migrations/20260915_survey_sop_receipt.sql b/database/migrations/20260915_survey_sop_receipt.sql new file mode 100644 index 0000000..e9005fd --- /dev/null +++ b/database/migrations/20260915_survey_sop_receipt.sql @@ -0,0 +1,21 @@ +-- 勘察 SOP 工单回执:receipt_value 由 VARCHAR(1024) 放宽为 TEXT +-- 背景:现场回执需按检查项存「照片对象 key 的 JSON 数组」(如「现场照片 ≥ 3 张」), +-- VARCHAR(1024) 约装 20 个 key 即触顶,多图回执写库会直接报错。 +-- 幂等:先判断当前列类型,非 text 才 ALTER,可重复执行。 +BEGIN; + +DO $$ +BEGIN + IF EXISTS ( + SELECT 1 FROM information_schema.columns + WHERE table_name = 'survey_sop_result' + AND column_name = 'receipt_value' + AND data_type <> 'text' + ) THEN + ALTER TABLE survey_sop_result ALTER COLUMN receipt_value TYPE TEXT; + END IF; +END $$; + +COMMENT ON COLUMN survey_sop_result.receipt_value IS '回执内容(照片对象key的JSON数组字符串 / 表单文本值 / 测仪截图key的JSON数组字符串)'; + +COMMIT;