brass/db/migrations/20250503133011_availability_date_time_range.sql

44 lines
1.4 KiB
SQL

ALTER TABLE availabillity
ADD COLUMN startTimestamp TIMESTAMP WITH TIME ZONE,
ADD COLUMN endTimestamp TIMESTAMP WITH TIME ZONE;
UPDATE availabillity SET
startTimestamp=date::timestamp + COALESCE(startTime, time '0:00'),
endTimestamp=date::timestamp + COALESCE(endTime, time '0:00');
ALTER TABLE availabillity
ALTER COLUMN startTimestamp SET NOT NULL,
ALTER COLUMN endTimestamp SET NOT NULL,
DROP COLUMN date,
DROP COLUMN startTime,
DROP COLUMN endTime;
ALTER TABLE event
ADD COLUMN startTimestamp TIMESTAMP WITH TIME ZONE,
ADD COLUMN endTimestamp TIMESTAMP WITH TIME ZONE;
UPDATE event SET
startTimestamp=date::timestamp + startTime,
endTimestamp=date::timestamp + endTime;
ALTER TABLE event
ALTER COLUMN startTimestamp SET NOT NULL,
ALTER COLUMN endTimestamp SET NOT NULL,
DROP COLUMN date,
DROP COLUMN startTime,
DROP COLUMN endTime;
ALTER TABLE assignment
ADD COLUMN startTimestamp TIMESTAMP WITH TIME ZONE,
ADD COLUMN endTimestamp TIMESTAMP WITH TIME ZONE;
UPDATE assignment SET (startTimestamp, endTimestamp) =
(SELECT startTimestamp, endTimestamp FROM event
WHERE event.id = assignment.eventId);
ALTER TABLE assignment
ALTER COLUMN startTimestamp SET NOT NULL,
ALTER COLUMN endTimestamp SET NOT NULL,
DROP COLUMN startTime,
DROP COLUMN endTime;