chore(master-data): retire legacy asset sku group drift
This commit is contained in:
parent
26e40b0e71
commit
d38a373297
@ -0,0 +1,80 @@
|
||||
DO $$
|
||||
BEGIN
|
||||
IF to_regclass('public."AssetSkuGroup"') IS NOT NULL
|
||||
AND EXISTS (
|
||||
SELECT 1
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema = 'public'
|
||||
AND table_name = 'AssetVariant'
|
||||
AND column_name = 'skuGroupId'
|
||||
)
|
||||
THEN
|
||||
EXECUTE $SQL$
|
||||
UPDATE "AssetVariant" AS variant
|
||||
SET "businessData" = jsonb_set(
|
||||
CASE
|
||||
WHEN variant."businessData" IS NULL OR jsonb_typeof(variant."businessData") <> 'object'
|
||||
THEN '{}'::jsonb
|
||||
ELSE variant."businessData"
|
||||
END,
|
||||
'{legacySkuGroup}',
|
||||
jsonb_build_object(
|
||||
'id', sku_group.id,
|
||||
'code', sku_group.code,
|
||||
'name', sku_group.name,
|
||||
'description', sku_group.description,
|
||||
'sortOrder', sku_group."sortOrder",
|
||||
'metadata', sku_group.metadata,
|
||||
'assetFamilyId', sku_group."assetFamilyId",
|
||||
'source', 'AssetSkuGroup.retired'
|
||||
),
|
||||
true
|
||||
)
|
||||
FROM "AssetSkuGroup" AS sku_group
|
||||
WHERE variant."skuGroupId" = sku_group.id
|
||||
$SQL$;
|
||||
|
||||
EXECUTE $SQL$
|
||||
UPDATE "AssetFamily" AS family
|
||||
SET metadata = jsonb_set(
|
||||
CASE
|
||||
WHEN family.metadata IS NULL OR jsonb_typeof(family.metadata) <> 'object'
|
||||
THEN '{}'::jsonb
|
||||
ELSE family.metadata
|
||||
END,
|
||||
'{legacySkuGroups}',
|
||||
grouped.groups,
|
||||
true
|
||||
)
|
||||
FROM (
|
||||
SELECT
|
||||
"assetFamilyId",
|
||||
jsonb_agg(
|
||||
jsonb_build_object(
|
||||
'id', id,
|
||||
'code', code,
|
||||
'name', name,
|
||||
'description', description,
|
||||
'sortOrder', "sortOrder",
|
||||
'metadata', metadata,
|
||||
'source', 'AssetSkuGroup.retired'
|
||||
)
|
||||
ORDER BY "sortOrder", code
|
||||
) AS groups
|
||||
FROM "AssetSkuGroup"
|
||||
GROUP BY "assetFamilyId"
|
||||
) AS grouped
|
||||
WHERE family.id = grouped."assetFamilyId"
|
||||
$SQL$;
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
ALTER TABLE "AssetVariant"
|
||||
DROP CONSTRAINT IF EXISTS "AssetVariant_skuGroupId_fkey";
|
||||
|
||||
DROP INDEX IF EXISTS "AssetVariant_skuGroupId_idx";
|
||||
|
||||
ALTER TABLE "AssetVariant"
|
||||
DROP COLUMN IF EXISTS "skuGroupId";
|
||||
|
||||
DROP TABLE IF EXISTS "AssetSkuGroup";
|
||||
Loading…
x
Reference in New Issue
Block a user