🌐 Better way to store times (#1037)

This commit is contained in:
Luke Vella 2024-02-29 16:36:21 +05:30 committed by GitHub
parent 7b996aa24f
commit 08729168d2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
14 changed files with 150 additions and 29 deletions

View file

@ -0,0 +1,27 @@
-- AlterTable
ALTER TABLE "options" ADD COLUMN "start_time" TIMESTAMP(0);
-- migration.sql
DO
$do$
DECLARE
poll_record RECORD;
BEGIN
FOR poll_record IN SELECT id, "time_zone" FROM polls
LOOP
IF poll_record."time_zone" IS NULL OR poll_record."time_zone" = '' THEN
UPDATE options
SET "start_time" = "start"
WHERE "poll_id" = poll_record.id;
ELSE
UPDATE options
SET "start_time" = ("start"::TIMESTAMP WITHOUT TIME ZONE) AT TIME ZONE poll_record.time_zone
WHERE "poll_id" = poll_record.id;
END IF;
END LOOP;
END
$do$;
-- Make start_time not null
ALTER TABLE "options" ALTER COLUMN "start_time" SET NOT NULL;

View file

@ -196,7 +196,8 @@ model Participant {
model Option {
id String @id @default(cuid())
start DateTime @db.Timestamp(0)
start DateTime @db.Timestamp(0) // @deprecated - use startTime
startTime DateTime @db.Timestamp(0) @map("start_time")
duration Int @default(0) @map("duration_minutes")
pollId String @map("poll_id")
poll Poll @relation(fields: [pollId], references: [id])