fix(seed): align upsert conflict targets with partial unique indexes

This commit is contained in:
Ashwin Kumar 2026-03-21 15:17:59 +01:00
parent 3b6d0f4951
commit cb36e2fa7d

View file

@ -227,7 +227,7 @@ SELECT id, $json${
]
}$json$::jsonb, 2, true
FROM roles WHERE key = 'CUSTOMER'
ON CONFLICT (role_id, is_active) DO UPDATE SET schema_json = EXCLUDED.schema_json, version = EXCLUDED.version;
ON CONFLICT (role_id) WHERE is_active DO UPDATE SET schema_json = EXCLUDED.schema_json, version = EXCLUDED.version;
-- COMPANY (6 steps)
INSERT INTO onboarding_configs (role_id, schema_json, version, is_active)
@ -292,7 +292,7 @@ SELECT id, $json${
]
}$json$::jsonb, 2, true
FROM roles WHERE key = 'COMPANY'
ON CONFLICT (role_id, is_active) DO UPDATE SET schema_json = EXCLUDED.schema_json, version = EXCLUDED.version;
ON CONFLICT (role_id) WHERE is_active DO UPDATE SET schema_json = EXCLUDED.schema_json, version = EXCLUDED.version;
-- JOB_SEEKER (5 steps — NO resume upload to prevent phone number exposure)
INSERT INTO onboarding_configs (role_id, schema_json, version, is_active)
@ -348,7 +348,7 @@ SELECT id, $json${
]
}$json$::jsonb, 2, true
FROM roles WHERE key = 'JOB_SEEKER'
ON CONFLICT (role_id, is_active) DO UPDATE SET schema_json = EXCLUDED.schema_json, version = EXCLUDED.version;
ON CONFLICT (role_id) WHERE is_active DO UPDATE SET schema_json = EXCLUDED.schema_json, version = EXCLUDED.version;
-- PHOTOGRAPHER (6 steps)
INSERT INTO onboarding_configs (role_id, schema_json, version, is_active)
@ -416,7 +416,7 @@ SELECT id, $json${
]
}$json$::jsonb, 2, true
FROM roles WHERE key = 'PHOTOGRAPHER'
ON CONFLICT (role_id, is_active) DO UPDATE SET schema_json = EXCLUDED.schema_json, version = EXCLUDED.version;
ON CONFLICT (role_id) WHERE is_active DO UPDATE SET schema_json = EXCLUDED.schema_json, version = EXCLUDED.version;
-- MAKEUP_ARTIST (6 steps)
INSERT INTO onboarding_configs (role_id, schema_json, version, is_active)
@ -484,7 +484,7 @@ SELECT id, $json${
]
}$json$::jsonb, 2, true
FROM roles WHERE key = 'MAKEUP_ARTIST'
ON CONFLICT (role_id, is_active) DO UPDATE SET schema_json = EXCLUDED.schema_json, version = EXCLUDED.version;
ON CONFLICT (role_id) WHERE is_active DO UPDATE SET schema_json = EXCLUDED.schema_json, version = EXCLUDED.version;
-- TUTOR (6 steps)
INSERT INTO onboarding_configs (role_id, schema_json, version, is_active)
@ -552,7 +552,7 @@ SELECT id, $json${
]
}$json$::jsonb, 2, true
FROM roles WHERE key = 'TUTOR'
ON CONFLICT (role_id, is_active) DO UPDATE SET schema_json = EXCLUDED.schema_json, version = EXCLUDED.version;
ON CONFLICT (role_id) WHERE is_active DO UPDATE SET schema_json = EXCLUDED.schema_json, version = EXCLUDED.version;
-- DEVELOPER (6 steps)
INSERT INTO onboarding_configs (role_id, schema_json, version, is_active)
@ -619,7 +619,7 @@ SELECT id, $json${
]
}$json$::jsonb, 2, true
FROM roles WHERE key = 'DEVELOPER'
ON CONFLICT (role_id, is_active) DO UPDATE SET schema_json = EXCLUDED.schema_json, version = EXCLUDED.version;
ON CONFLICT (role_id) WHERE is_active DO UPDATE SET schema_json = EXCLUDED.schema_json, version = EXCLUDED.version;
-- VIDEO_EDITOR (6 steps)
INSERT INTO onboarding_configs (role_id, schema_json, version, is_active)
@ -688,7 +688,7 @@ SELECT id, $json${
]
}$json$::jsonb, 2, true
FROM roles WHERE key = 'VIDEO_EDITOR'
ON CONFLICT (role_id, is_active) DO UPDATE SET schema_json = EXCLUDED.schema_json, version = EXCLUDED.version;
ON CONFLICT (role_id) WHERE is_active DO UPDATE SET schema_json = EXCLUDED.schema_json, version = EXCLUDED.version;
-- GRAPHIC_DESIGNER (6 steps)
INSERT INTO onboarding_configs (role_id, schema_json, version, is_active)
@ -756,7 +756,7 @@ SELECT id, $json${
]
}$json$::jsonb, 2, true
FROM roles WHERE key = 'GRAPHIC_DESIGNER'
ON CONFLICT (role_id, is_active) DO UPDATE SET schema_json = EXCLUDED.schema_json, version = EXCLUDED.version;
ON CONFLICT (role_id) WHERE is_active DO UPDATE SET schema_json = EXCLUDED.schema_json, version = EXCLUDED.version;
-- SOCIAL_MEDIA_MANAGER (6 steps)
INSERT INTO onboarding_configs (role_id, schema_json, version, is_active)
@ -824,7 +824,7 @@ SELECT id, $json${
]
}$json$::jsonb, 2, true
FROM roles WHERE key = 'SOCIAL_MEDIA_MANAGER'
ON CONFLICT (role_id, is_active) DO UPDATE SET schema_json = EXCLUDED.schema_json, version = EXCLUDED.version;
ON CONFLICT (role_id) WHERE is_active DO UPDATE SET schema_json = EXCLUDED.schema_json, version = EXCLUDED.version;
-- FITNESS_TRAINER (6 steps)
INSERT INTO onboarding_configs (role_id, schema_json, version, is_active)
@ -892,7 +892,7 @@ SELECT id, $json${
]
}$json$::jsonb, 2, true
FROM roles WHERE key = 'FITNESS_TRAINER'
ON CONFLICT (role_id, is_active) DO UPDATE SET schema_json = EXCLUDED.schema_json, version = EXCLUDED.version;
ON CONFLICT (role_id) WHERE is_active DO UPDATE SET schema_json = EXCLUDED.schema_json, version = EXCLUDED.version;
-- CATERING_SERVICES (6 steps)
INSERT INTO onboarding_configs (role_id, schema_json, version, is_active)
@ -960,7 +960,7 @@ SELECT id, $json${
]
}$json$::jsonb, 2, true
FROM roles WHERE key = 'CATERING_SERVICES'
ON CONFLICT (role_id, is_active) DO UPDATE SET schema_json = EXCLUDED.schema_json, version = EXCLUDED.version;
ON CONFLICT (role_id) WHERE is_active DO UPDATE SET schema_json = EXCLUDED.schema_json, version = EXCLUDED.version;
-- ── 4. Default Dashboard Configs ─────────────────────────────────────────────
@ -1003,7 +1003,7 @@ SELECT r.id,
true
FROM roles r
WHERE r.audience = 'EXTERNAL'
ON CONFLICT (role_id, is_active) DO NOTHING;
ON CONFLICT (role_id, audience) WHERE is_active DO NOTHING;
-- ── Done ──────────────────────────────────────────────────────────────────────
SELECT 'Seed completed successfully.' AS status;