mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-30 04:08:11 +00:00
Merge pull request #354 from Tria-plc/alpha
Migration issue resolution - individual ticket no timezone
This commit is contained in:
@@ -1,8 +1,15 @@
|
|||||||
-- DropForeignKey
|
-- DropForeignKey (only if table exists)
|
||||||
ALTER TABLE "passenger"."TicketSeat" DROP CONSTRAINT IF EXISTS "TicketSeat_seatId_fkey";
|
DO $$
|
||||||
|
BEGIN
|
||||||
-- DropForeignKey
|
IF EXISTS (
|
||||||
ALTER TABLE "passenger"."TicketSeat" DROP CONSTRAINT IF EXISTS "TicketSeat_ticketId_fkey";
|
SELECT FROM information_schema.tables
|
||||||
|
WHERE table_schema = 'passenger'
|
||||||
|
AND table_name = 'TicketSeat'
|
||||||
|
) THEN
|
||||||
|
ALTER TABLE "passenger"."TicketSeat" DROP CONSTRAINT IF EXISTS "TicketSeat_seatId_fkey";
|
||||||
|
ALTER TABLE "passenger"."TicketSeat" DROP CONSTRAINT IF EXISTS "TicketSeat_ticketId_fkey";
|
||||||
|
END IF;
|
||||||
|
END $$;
|
||||||
|
|
||||||
-- DropIndex
|
-- DropIndex
|
||||||
DROP INDEX IF EXISTS "passenger"."Ticket_bookingId_key";
|
DROP INDEX IF EXISTS "passenger"."Ticket_bookingId_key";
|
||||||
@@ -20,18 +27,28 @@ ALTER TABLE "passenger"."Ticket"
|
|||||||
-- DropTable
|
-- DropTable
|
||||||
DROP TABLE IF EXISTS "passenger"."TicketSeat";
|
DROP TABLE IF EXISTS "passenger"."TicketSeat";
|
||||||
|
|
||||||
-- Remove GateValidationLog rows referencing orphan tickets first
|
-- Remove GateValidationLog rows referencing orphan tickets first (only if tickets have seatId column)
|
||||||
DELETE FROM "passenger"."GateValidationLog"
|
DO $$
|
||||||
WHERE "ticketId" IN (
|
BEGIN
|
||||||
SELECT "id" FROM "passenger"."Ticket"
|
IF EXISTS (
|
||||||
WHERE "seatId" = ''
|
SELECT FROM information_schema.columns
|
||||||
OR "seatId" NOT IN (SELECT "id" FROM "passenger"."Seat")
|
WHERE table_schema = 'passenger'
|
||||||
);
|
AND table_name = 'Ticket'
|
||||||
|
AND column_name = 'seatId'
|
||||||
|
) THEN
|
||||||
|
DELETE FROM "passenger"."GateValidationLog"
|
||||||
|
WHERE "ticketId" IN (
|
||||||
|
SELECT "id" FROM "passenger"."Ticket"
|
||||||
|
WHERE "seatId" = ''
|
||||||
|
OR "seatId" NOT IN (SELECT "id" FROM "passenger"."Seat")
|
||||||
|
);
|
||||||
|
|
||||||
-- Remove orphan ticket rows
|
-- Remove orphan ticket rows
|
||||||
DELETE FROM "passenger"."Ticket"
|
DELETE FROM "passenger"."Ticket"
|
||||||
WHERE "seatId" = ''
|
WHERE "seatId" = ''
|
||||||
OR "seatId" NOT IN (SELECT "id" FROM "passenger"."Seat");
|
OR "seatId" NOT IN (SELECT "id" FROM "passenger"."Seat");
|
||||||
|
END IF;
|
||||||
|
END $$;
|
||||||
|
|
||||||
-- CreateIndex
|
-- CreateIndex
|
||||||
CREATE INDEX IF NOT EXISTS "Ticket_bookingId_idx" ON "passenger"."Ticket"("bookingId");
|
CREATE INDEX IF NOT EXISTS "Ticket_bookingId_idx" ON "passenger"."Ticket"("bookingId");
|
||||||
@@ -39,8 +56,22 @@ CREATE INDEX IF NOT EXISTS "Ticket_bookingId_idx" ON "passenger"."Ticket"("booki
|
|||||||
-- CreateIndex
|
-- CreateIndex
|
||||||
CREATE INDEX IF NOT EXISTS "Ticket_seatId_idx" ON "passenger"."Ticket"("seatId");
|
CREATE INDEX IF NOT EXISTS "Ticket_seatId_idx" ON "passenger"."Ticket"("seatId");
|
||||||
|
|
||||||
-- AddForeignKey
|
-- AddForeignKey (only if not already exists)
|
||||||
ALTER TABLE "passenger"."Ticket"
|
DO $$
|
||||||
ADD CONSTRAINT "Ticket_seatId_fkey"
|
BEGIN
|
||||||
FOREIGN KEY ("seatId") REFERENCES "passenger"."Seat"("id")
|
IF EXISTS (
|
||||||
ON DELETE RESTRICT ON UPDATE CASCADE;
|
SELECT FROM information_schema.columns
|
||||||
|
WHERE table_schema = 'passenger'
|
||||||
|
AND table_name = 'Ticket'
|
||||||
|
AND column_name = 'seatId'
|
||||||
|
) AND NOT EXISTS (
|
||||||
|
SELECT FROM information_schema.table_constraints
|
||||||
|
WHERE constraint_schema = 'passenger'
|
||||||
|
AND constraint_name = 'Ticket_seatId_fkey'
|
||||||
|
) THEN
|
||||||
|
ALTER TABLE "passenger"."Ticket"
|
||||||
|
ADD CONSTRAINT "Ticket_seatId_fkey"
|
||||||
|
FOREIGN KEY ("seatId") REFERENCES "passenger"."Seat"("id")
|
||||||
|
ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||||
|
END IF;
|
||||||
|
END $$;
|
||||||
|
|||||||
Reference in New Issue
Block a user