mirror of
https://gitlab.com/mbugroup/lti-api.git
synced 2026-05-20 13:31:56 +00:00
42 lines
1.0 KiB
PL/PgSQL
42 lines
1.0 KiB
PL/PgSQL
BEGIN;
|
|
|
|
ALTER TABLE employee_kandangs
|
|
DROP CONSTRAINT IF EXISTS fk_employee_kandangs_kandang;
|
|
|
|
ALTER TABLE employee_kandangs
|
|
DROP CONSTRAINT IF EXISTS uq_employee_kandangs;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF EXISTS (
|
|
SELECT 1
|
|
FROM employee_kandangs ek
|
|
LEFT JOIN kandangs k ON k.id = ek.kandang_id
|
|
WHERE k.kandang_group_id IS NULL
|
|
) THEN
|
|
RAISE EXCEPTION 'Cannot migrate employee_kandangs: kandang_id has no kandang_group_id mapping';
|
|
END IF;
|
|
END $$;
|
|
|
|
UPDATE employee_kandangs ek
|
|
SET kandang_id = k.kandang_group_id,
|
|
updated_at = NOW()
|
|
FROM kandangs k
|
|
WHERE k.id = ek.kandang_id;
|
|
|
|
DELETE FROM employee_kandangs ek1
|
|
USING employee_kandangs ek2
|
|
WHERE ek1.id > ek2.id
|
|
AND ek1.employee_id = ek2.employee_id
|
|
AND ek1.kandang_id = ek2.kandang_id;
|
|
|
|
ALTER TABLE employee_kandangs
|
|
ADD CONSTRAINT fk_employee_kandangs_kandang
|
|
FOREIGN KEY (kandang_id) REFERENCES kandang_groups (id)
|
|
ON DELETE CASCADE;
|
|
|
|
ALTER TABLE employee_kandangs
|
|
ADD CONSTRAINT uq_employee_kandangs UNIQUE (employee_id, kandang_id);
|
|
|
|
COMMIT;
|