37 lines
1.3 KiB
SQL
37 lines
1.3 KiB
SQL
-- peripheral_info 加自增主键 + asset_id 可空 + star_id + user_id
|
|
-- 用于支持"扫码时预建 peripheral_info,mint 时回填 asset_id 和 user_id"的流程
|
|
|
|
-- 1. 加自增主键(原本 asset_id 是 PK,但 mint 时 asset 才创建,需要 NULL)
|
|
ALTER TABLE peripheral_info
|
|
ADD COLUMN IF NOT EXISTS id BIGSERIAL;
|
|
|
|
-- 2. 如果 asset_id 当前是 PK,需要 drop;GORM AutoMigrate 会处理
|
|
ALTER TABLE peripheral_info
|
|
DROP CONSTRAINT IF EXISTS peripheral_info_pkey;
|
|
|
|
ALTER TABLE peripheral_info
|
|
ADD PRIMARY KEY (id);
|
|
|
|
-- 3. asset_id 改为可空默认 NULL(mint 后才回填)
|
|
ALTER TABLE peripheral_info
|
|
ALTER COLUMN asset_id DROP NOT NULL,
|
|
ALTER COLUMN asset_id SET DEFAULT NULL;
|
|
|
|
-- 4. 加 star_id 默认 87(项目主星)
|
|
ALTER TABLE peripheral_info
|
|
ADD COLUMN IF NOT EXISTS star_id BIGINT NOT NULL DEFAULT 87;
|
|
|
|
-- 5. 加 user_id(mint 后回填,默认 NULL)
|
|
ALTER TABLE peripheral_info
|
|
ADD COLUMN IF NOT EXISTS user_id BIGINT DEFAULT NULL;
|
|
|
|
-- 6. 序列同步
|
|
SELECT setval(pg_get_serial_sequence('peripheral_info', 'id'), COALESCE((SELECT MAX(id) FROM peripheral_info), 0));
|
|
|
|
-- 7. code 加 UNIQUE 约束(SKU/序列号唯一)
|
|
CREATE UNIQUE INDEX IF NOT EXISTS idx_peripheral_info_code ON peripheral_info(code) WHERE code <> '';
|
|
|
|
-- 8. 周边缩略图
|
|
ALTER TABLE peripheral_info
|
|
ADD COLUMN IF NOT EXISTS image VARCHAR(500) DEFAULT '';
|