Merge pull request #354 from Tria-plc/alpha

Migration issue resolution - individual ticket no timezone
This commit is contained in:
Stephanos A.
2026-06-29 23:09:45 +03:00
committed by GitHub

View File

@@ -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 $$;