feat: 添加媒体资产变体和来源ID字段,支持预览产品与主资产的关联
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
-- +goose Up
|
||||
-- +goose StatementBegin
|
||||
ALTER TABLE media_assets
|
||||
ADD COLUMN IF NOT EXISTS variant varchar(32) NOT NULL DEFAULT 'main';
|
||||
|
||||
-- 回填历史数据:老数据一律视为 main。
|
||||
UPDATE media_assets
|
||||
SET variant = 'main'
|
||||
WHERE variant IS NULL OR variant = '';
|
||||
|
||||
-- 约束:只允许 main/preview
|
||||
ALTER TABLE media_assets
|
||||
ADD CONSTRAINT IF NOT EXISTS ck_media_assets_variant
|
||||
CHECK (variant IN ('main', 'preview'));
|
||||
|
||||
COMMENT ON COLUMN media_assets.variant IS '产物类型:main/preview;用于强制试看资源必须绑定独立产物,避免用正片绕过';
|
||||
|
||||
CREATE INDEX IF NOT EXISTS ix_media_assets_tenant_variant ON media_assets (tenant_id, variant);
|
||||
-- +goose StatementEnd
|
||||
|
||||
-- +goose Down
|
||||
-- +goose StatementBegin
|
||||
DROP INDEX IF EXISTS ix_media_assets_tenant_variant;
|
||||
ALTER TABLE media_assets DROP CONSTRAINT IF EXISTS ck_media_assets_variant;
|
||||
ALTER TABLE media_assets DROP COLUMN IF EXISTS variant;
|
||||
-- +goose StatementEnd
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
-- +goose Up
|
||||
-- +goose StatementBegin
|
||||
ALTER TABLE media_assets
|
||||
ADD COLUMN IF NOT EXISTS source_asset_id bigint;
|
||||
|
||||
COMMENT ON COLUMN media_assets.source_asset_id IS '派生来源资源ID:preview 产物可指向对应 main 资源;用于建立 preview/main 的 1:1 追溯关系';
|
||||
|
||||
CREATE INDEX IF NOT EXISTS ix_media_assets_tenant_source_asset_id ON media_assets (tenant_id, source_asset_id);
|
||||
-- +goose StatementEnd
|
||||
|
||||
-- +goose Down
|
||||
-- +goose StatementBegin
|
||||
DROP INDEX IF EXISTS ix_media_assets_tenant_source_asset_id;
|
||||
ALTER TABLE media_assets DROP COLUMN IF EXISTS source_asset_id;
|
||||
-- +goose StatementEnd
|
||||
|
||||
Reference in New Issue
Block a user