feat(M08-D): 补广告与装修管理
This commit is contained in:
@@ -5,7 +5,8 @@ ORDER BY table_name;
|
||||
|
||||
SELECT table_name, index_name FROM information_schema.statistics
|
||||
WHERE table_schema = DATABASE()
|
||||
AND ((table_name = 'qipai_media_assets' AND index_name = 'uq_qipai_media_tenant_checksum')
|
||||
AND ((table_name = 'qipai_media_assets'
|
||||
AND index_name IN ('uq_qipai_media_tenant_checksum', 'uq_qipai_media_scope_checksum'))
|
||||
OR (table_name = 'qipai_store_decorations' AND index_name = 'uq_qipai_decorations_version')
|
||||
OR (table_name = 'qipai_advertisements' AND index_name = 'idx_qipai_ads_delivery'))
|
||||
GROUP BY table_name, index_name ORDER BY table_name;
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
UPDATE qipai_advertisements a
|
||||
INNER JOIN qipai_media_assets current_asset
|
||||
ON current_asset.tenant_id = a.tenant_id AND current_asset.id = a.image_asset_id
|
||||
INNER JOIN (
|
||||
SELECT tenant_id, checksum_sha256, MIN(id) AS retained_id
|
||||
FROM qipai_media_assets
|
||||
GROUP BY tenant_id, checksum_sha256
|
||||
) duplicate_group
|
||||
ON duplicate_group.tenant_id = current_asset.tenant_id
|
||||
AND duplicate_group.checksum_sha256 = current_asset.checksum_sha256
|
||||
SET a.image_asset_id = duplicate_group.retained_id
|
||||
WHERE a.image_asset_id <> duplicate_group.retained_id;
|
||||
|
||||
DELETE duplicate_asset
|
||||
FROM qipai_media_assets duplicate_asset
|
||||
INNER JOIN (
|
||||
SELECT tenant_id, checksum_sha256, MIN(id) AS retained_id
|
||||
FROM qipai_media_assets
|
||||
GROUP BY tenant_id, checksum_sha256
|
||||
) duplicate_group
|
||||
ON duplicate_group.tenant_id = duplicate_asset.tenant_id
|
||||
AND duplicate_group.checksum_sha256 = duplicate_asset.checksum_sha256
|
||||
WHERE duplicate_asset.id <> duplicate_group.retained_id;
|
||||
|
||||
ALTER TABLE qipai_media_assets
|
||||
DROP INDEX uq_qipai_media_scope_checksum,
|
||||
DROP COLUMN scope_store_id,
|
||||
ADD UNIQUE KEY uq_qipai_media_tenant_checksum (tenant_id, checksum_sha256);
|
||||
|
||||
DELETE FROM qipai_schema_migrations
|
||||
WHERE version = '2026081002';
|
||||
@@ -0,0 +1,9 @@
|
||||
ALTER TABLE qipai_media_assets
|
||||
DROP INDEX uq_qipai_media_tenant_checksum,
|
||||
ADD COLUMN scope_store_id BIGINT UNSIGNED
|
||||
GENERATED ALWAYS AS (IFNULL(store_id, 0)) STORED AFTER store_id,
|
||||
ADD UNIQUE KEY uq_qipai_media_scope_checksum
|
||||
(tenant_id, scope_store_id, checksum_sha256);
|
||||
|
||||
INSERT IGNORE INTO qipai_schema_migrations (version, name)
|
||||
VALUES ('2026081002', 'm08d_content_asset_scope');
|
||||
@@ -0,0 +1,16 @@
|
||||
SELECT column_name, generation_expression, extra
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema = DATABASE()
|
||||
AND table_name = 'qipai_media_assets'
|
||||
AND column_name = 'scope_store_id';
|
||||
|
||||
SELECT index_name, GROUP_CONCAT(column_name ORDER BY seq_in_index) AS columns_in_order
|
||||
FROM information_schema.statistics
|
||||
WHERE table_schema = DATABASE()
|
||||
AND table_name = 'qipai_media_assets'
|
||||
AND index_name = 'uq_qipai_media_scope_checksum'
|
||||
GROUP BY index_name;
|
||||
|
||||
SELECT version, name
|
||||
FROM qipai_schema_migrations
|
||||
WHERE version = '2026081002';
|
||||
Reference in New Issue
Block a user