Christmas cookie ranking site

commit migration

+64 -60
+63
migrations/committed/000001.sql
··· 1 + --! Previous: - 2 + --! Hash: sha1:2f544d9a612fe13acf506919fec43be4bc2d5dec 3 + 4 + CREATE EXTENSION IF NOT EXISTS citext; 5 + 6 + DROP TABLE IF EXISTS comments CASCADE; 7 + DROP TABLE IF EXISTS reviews CASCADE; 8 + DROP TABLE IF EXISTS sessions CASCADE; 9 + DROP TABLE IF EXISTS accounts CASCADE; 10 + DROP TABLE IF EXISTS cookies CASCADE; 11 + 12 + CREATE TABLE IF NOT EXISTS cookies ( 13 + id TEXT NOT NULL, 14 + name TEXT NOT NULL, 15 + year INT NOT NULL, 16 + description TEXT NOT NULL, 17 + ordering INT NOT NULL, 18 + image_url TEXT, 19 + PRIMARY KEY (id, year), 20 + UNIQUE (year, ordering) 21 + ); 22 + 23 + CREATE TABLE IF NOT EXISTS accounts ( 24 + id CITEXT PRIMARY KEY, 25 + created_at TIMESTAMPTZ NOT NULL DEFAULT now() 26 + ); 27 + 28 + CREATE TABLE IF NOT EXISTS sessions ( 29 + id UUID PRIMARY KEY DEFAULT gen_random_uuid(), 30 + account_id CITEXT REFERENCES accounts (id) ON DELETE SET NULL ON UPDATE CASCADE, 31 + created_at TIMESTAMPTZ NOT NULL DEFAULT now(), 32 + expires_at TIMESTAMPTZ NOT NULL DEFAULT now() + CAST('30 days' AS INTERVAL) 33 + ); 34 + 35 + CREATE TABLE IF NOT EXISTS reviews ( 36 + id BIGINT PRIMARY KEY GENERATED ALWAYS AS IDENTITY, 37 + account_id CITEXT NOT NULL REFERENCES accounts (id) ON DELETE CASCADE ON UPDATE CASCADE, 38 + cookie_id TEXT NOT NULL, 39 + comment TEXT, 40 + year INT NOT NULL, 41 + created_at TIMESTAMPTZ NOT NULL DEFAULT now(), 42 + FOREIGN KEY (cookie_id, year) REFERENCES cookies (id, year) ON DELETE CASCADE ON UPDATE CASCADE 43 + ); 44 + 45 + CREATE TABLE IF NOT EXISTS rankings ( 46 + id BIGINT PRIMARY KEY GENERATED ALWAYS AS IDENTITY, 47 + account_id CITEXT NOT NULL REFERENCES accounts (id) ON DELETE CASCADE ON UPDATE CASCADE, 48 + cookie_id TEXT NOT NULL, 49 + year INT NOT NULL, 50 + ranking INT NOT NULL, 51 + created_at TIMESTAMPTZ NOT NULL DEFAULT now(), 52 + UNIQUE (account_id, cookie_id, year), 53 + UNIQUE (account_id, year, ranking), 54 + FOREIGN KEY (cookie_id, year) REFERENCES cookies (id, year) ON DELETE CASCADE ON UPDATE CASCADE 55 + ); 56 + 57 + CREATE TABLE IF NOT EXISTS comments ( 58 + id BIGINT PRIMARY KEY GENERATED ALWAYS AS IDENTITY, 59 + account_id CITEXT NOT NULL REFERENCES accounts (id) ON DELETE CASCADE ON UPDATE CASCADE, 60 + review_id BIGINT NOT NULL REFERENCES comments (id) ON DELETE CASCADE ON UPDATE CASCADE, 61 + comment TEXT NOT NULL, 62 + created_at TIMESTAMPTZ NOT NULL DEFAULT now() 63 + );
+1 -60
migrations/current.sql
··· 1 - CREATE EXTENSION IF NOT EXISTS citext; 2 - 3 - DROP TABLE IF EXISTS comments CASCADE; 4 - DROP TABLE IF EXISTS reviews CASCADE; 5 - DROP TABLE IF EXISTS sessions CASCADE; 6 - DROP TABLE IF EXISTS accounts CASCADE; 7 - DROP TABLE IF EXISTS cookies CASCADE; 8 - 9 - CREATE TABLE IF NOT EXISTS cookies ( 10 - id TEXT NOT NULL, 11 - name TEXT NOT NULL, 12 - year INT NOT NULL, 13 - description TEXT NOT NULL, 14 - ordering INT NOT NULL, 15 - image_url TEXT, 16 - PRIMARY KEY (id, year), 17 - UNIQUE (year, ordering) 18 - ); 19 - 20 - CREATE TABLE IF NOT EXISTS accounts ( 21 - id CITEXT PRIMARY KEY, 22 - created_at TIMESTAMPTZ NOT NULL DEFAULT now() 23 - ); 24 - 25 - CREATE TABLE IF NOT EXISTS sessions ( 26 - id UUID PRIMARY KEY DEFAULT gen_random_uuid(), 27 - account_id CITEXT REFERENCES accounts (id) ON DELETE SET NULL ON UPDATE CASCADE, 28 - created_at TIMESTAMPTZ NOT NULL DEFAULT now(), 29 - expires_at TIMESTAMPTZ NOT NULL DEFAULT now() + CAST('30 days' AS INTERVAL) 30 - ); 31 - 32 - CREATE TABLE IF NOT EXISTS reviews ( 33 - id BIGINT PRIMARY KEY GENERATED ALWAYS AS IDENTITY, 34 - account_id CITEXT NOT NULL REFERENCES accounts (id) ON DELETE CASCADE ON UPDATE CASCADE, 35 - cookie_id TEXT NOT NULL, 36 - comment TEXT, 37 - year INT NOT NULL, 38 - created_at TIMESTAMPTZ NOT NULL DEFAULT now(), 39 - FOREIGN KEY (cookie_id, year) REFERENCES cookies (id, year) ON DELETE CASCADE ON UPDATE CASCADE 40 - ); 41 - 42 - CREATE TABLE IF NOT EXISTS rankings ( 43 - id BIGINT PRIMARY KEY GENERATED ALWAYS AS IDENTITY, 44 - account_id CITEXT NOT NULL REFERENCES accounts (id) ON DELETE CASCADE ON UPDATE CASCADE, 45 - cookie_id TEXT NOT NULL, 46 - year INT NOT NULL, 47 - ranking INT NOT NULL, 48 - created_at TIMESTAMPTZ NOT NULL DEFAULT now(), 49 - UNIQUE (account_id, cookie_id, year), 50 - UNIQUE (account_id, year, ranking), 51 - FOREIGN KEY (cookie_id, year) REFERENCES cookies (id, year) ON DELETE CASCADE ON UPDATE CASCADE 52 - ); 53 - 54 - CREATE TABLE IF NOT EXISTS comments ( 55 - id BIGINT PRIMARY KEY GENERATED ALWAYS AS IDENTITY, 56 - account_id CITEXT NOT NULL REFERENCES accounts (id) ON DELETE CASCADE ON UPDATE CASCADE, 57 - review_id BIGINT NOT NULL REFERENCES comments (id) ON DELETE CASCADE ON UPDATE CASCADE, 58 - comment TEXT NOT NULL, 59 - created_at TIMESTAMPTZ NOT NULL DEFAULT now() 60 - ); 1 + -- Enter migration here