Files
biliup/crates/biliup-cli/migrations/2_fix_preprocessor_null.sql
Noah 8437b028c3 fix(db): 迁移 2 将空 tags 写成 [] 而不是 NULL (#1684)
uploadstreamers.tags 是 JSON NOT NULL。SET tags = null 会让从 Python 升级且 tags 为空字符串的实例卡在迁移 2。
2026-09-13 15:33:12 +00:00

39 lines
1.2 KiB
SQL

-- 修复所有 JSON 字段的空值问题,确保升级兼容性
-- 将 NULL 值、空字符串、以及错误的"null"字符串更新为空数组 JSON
-- 修复 livestreamers 表的 JSON 字段
UPDATE livestreamers
SET preprocessor = null
WHERE preprocessor = '' OR preprocessor = 'null';
UPDATE livestreamers
SET segment_processor = null
WHERE segment_processor = '' OR segment_processor = 'null';
UPDATE livestreamers
SET downloaded_processor = null
WHERE downloaded_processor = '' OR downloaded_processor = 'null';
UPDATE livestreamers
SET postprocessor = null
WHERE postprocessor = '' OR postprocessor = 'null';
UPDATE livestreamers
SET override = null
WHERE override = '' OR override = 'null';
UPDATE livestreamers
SET excluded_keywords = null
WHERE excluded_keywords = '' OR excluded_keywords = 'null';
UPDATE livestreamers
SET opt_args = null
WHERE opt_args = '' OR opt_args = 'null';
-- 修复 uploadstreamers 表的 JSON 字段。
-- tags 列为 JSON NOT NULL,不能写成 SQL NULL,否则升级到此迁移会直接失败。
-- 空字符串 / 错误的 "null" 文本统一归一成空数组。
UPDATE uploadstreamers
SET tags = '[]'
WHERE tags = '' OR tags = 'null';