You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

38 lines
2.1 KiB

-- 方案商归属从「品牌商」下移到「产品」。
-- 原因:方案商 = 这套产品用的芯片方案提供方,同一个品牌商的不同产品可能用不同方案商的方案,
-- 挂在品牌商上会串号——生产设备码的服务ID(CID)取的就是它。
-- brand.providerid 保留列但停止读写(后端已不再写入),待确认无回滚需求后再删列。
\set ON_ERROR_STOP on
BEGIN;
-- 1. 产品级方案商归属
ALTER TABLE product ADD COLUMN IF NOT EXISTS providerid integer DEFAULT 0;
CREATE INDEX IF NOT EXISTS idx_product_providerid ON product (providerid);
-- 2. 历史产品按原品牌商归属回填(品牌商没归属或方案商已不存在的,留 0 由后台补录)
UPDATE product p
SET providerid = b.providerid
FROM brand b
WHERE b.id = p.brandid
AND COALESCE(p.providerid, 0) = 0
AND COALESCE(b.providerid, 0) <> 0
AND EXISTS (SELECT 1 FROM solution_provider s WHERE s.id = b.providerid);
COMMIT;
-- 回填后核对:仍未绑定方案商的产品(后台产品管理里逐个补,补完才能正常生产设备码)
-- SELECT id, devicename, brandid FROM product WHERE COALESCE(providerid,0) = 0 ORDER BY id;
-- ── 同批:产品创建时间 + 产品说明 ──────────────────────────────────────────
-- createtime 只在新增时写一次(历史产品无从还原,留 0,后台显示为 "-");
-- description 是「这款产品是什么、有什么特性」,与版本更新说明 updatedescription 无关。
BEGIN;
ALTER TABLE product ADD COLUMN IF NOT EXISTS createtime bigint DEFAULT 0;
ALTER TABLE product ADD COLUMN IF NOT EXISTS description text DEFAULT '';
COMMIT;
-- ── 同批:品牌商创建时间 ───────────────────────────────────────────────────
-- 与产品一致,只在新增时写一次;历史品牌商无从还原,留 0,后台显示为 "-"。
BEGIN;
ALTER TABLE brand ADD COLUMN IF NOT EXISTS createtime bigint DEFAULT 0;
COMMIT;