···11+--! Previous: -
22+--! Hash: sha1:2f544d9a612fe13acf506919fec43be4bc2d5dec
33+44+CREATE EXTENSION IF NOT EXISTS citext;
55+66+DROP TABLE IF EXISTS comments CASCADE;
77+DROP TABLE IF EXISTS reviews CASCADE;
88+DROP TABLE IF EXISTS sessions CASCADE;
99+DROP TABLE IF EXISTS accounts CASCADE;
1010+DROP TABLE IF EXISTS cookies CASCADE;
1111+1212+CREATE TABLE IF NOT EXISTS cookies (
1313+ id TEXT NOT NULL,
1414+ name TEXT NOT NULL,
1515+ year INT NOT NULL,
1616+ description TEXT NOT NULL,
1717+ ordering INT NOT NULL,
1818+ image_url TEXT,
1919+ PRIMARY KEY (id, year),
2020+ UNIQUE (year, ordering)
2121+);
2222+2323+CREATE TABLE IF NOT EXISTS accounts (
2424+ id CITEXT PRIMARY KEY,
2525+ created_at TIMESTAMPTZ NOT NULL DEFAULT now()
2626+);
2727+2828+CREATE TABLE IF NOT EXISTS sessions (
2929+ id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
3030+ account_id CITEXT REFERENCES accounts (id) ON DELETE SET NULL ON UPDATE CASCADE,
3131+ created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
3232+ expires_at TIMESTAMPTZ NOT NULL DEFAULT now() + CAST('30 days' AS INTERVAL)
3333+);
3434+3535+CREATE TABLE IF NOT EXISTS reviews (
3636+ id BIGINT PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
3737+ account_id CITEXT NOT NULL REFERENCES accounts (id) ON DELETE CASCADE ON UPDATE CASCADE,
3838+ cookie_id TEXT NOT NULL,
3939+ comment TEXT,
4040+ year INT NOT NULL,
4141+ created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
4242+ FOREIGN KEY (cookie_id, year) REFERENCES cookies (id, year) ON DELETE CASCADE ON UPDATE CASCADE
4343+);
4444+4545+CREATE TABLE IF NOT EXISTS rankings (
4646+ id BIGINT PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
4747+ account_id CITEXT NOT NULL REFERENCES accounts (id) ON DELETE CASCADE ON UPDATE CASCADE,
4848+ cookie_id TEXT NOT NULL,
4949+ year INT NOT NULL,
5050+ ranking INT NOT NULL,
5151+ created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
5252+ UNIQUE (account_id, cookie_id, year),
5353+ UNIQUE (account_id, year, ranking),
5454+ FOREIGN KEY (cookie_id, year) REFERENCES cookies (id, year) ON DELETE CASCADE ON UPDATE CASCADE
5555+);
5656+5757+CREATE TABLE IF NOT EXISTS comments (
5858+ id BIGINT PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
5959+ account_id CITEXT NOT NULL REFERENCES accounts (id) ON DELETE CASCADE ON UPDATE CASCADE,
6060+ review_id BIGINT NOT NULL REFERENCES comments (id) ON DELETE CASCADE ON UPDATE CASCADE,
6161+ comment TEXT NOT NULL,
6262+ created_at TIMESTAMPTZ NOT NULL DEFAULT now()
6363+);
+1-60
migrations/current.sql
···11-CREATE EXTENSION IF NOT EXISTS citext;
22-33-DROP TABLE IF EXISTS comments CASCADE;
44-DROP TABLE IF EXISTS reviews CASCADE;
55-DROP TABLE IF EXISTS sessions CASCADE;
66-DROP TABLE IF EXISTS accounts CASCADE;
77-DROP TABLE IF EXISTS cookies CASCADE;
88-99-CREATE TABLE IF NOT EXISTS cookies (
1010- id TEXT NOT NULL,
1111- name TEXT NOT NULL,
1212- year INT NOT NULL,
1313- description TEXT NOT NULL,
1414- ordering INT NOT NULL,
1515- image_url TEXT,
1616- PRIMARY KEY (id, year),
1717- UNIQUE (year, ordering)
1818-);
1919-2020-CREATE TABLE IF NOT EXISTS accounts (
2121- id CITEXT PRIMARY KEY,
2222- created_at TIMESTAMPTZ NOT NULL DEFAULT now()
2323-);
2424-2525-CREATE TABLE IF NOT EXISTS sessions (
2626- id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
2727- account_id CITEXT REFERENCES accounts (id) ON DELETE SET NULL ON UPDATE CASCADE,
2828- created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
2929- expires_at TIMESTAMPTZ NOT NULL DEFAULT now() + CAST('30 days' AS INTERVAL)
3030-);
3131-3232-CREATE TABLE IF NOT EXISTS reviews (
3333- id BIGINT PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
3434- account_id CITEXT NOT NULL REFERENCES accounts (id) ON DELETE CASCADE ON UPDATE CASCADE,
3535- cookie_id TEXT NOT NULL,
3636- comment TEXT,
3737- year INT NOT NULL,
3838- created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
3939- FOREIGN KEY (cookie_id, year) REFERENCES cookies (id, year) ON DELETE CASCADE ON UPDATE CASCADE
4040-);
4141-4242-CREATE TABLE IF NOT EXISTS rankings (
4343- id BIGINT PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
4444- account_id CITEXT NOT NULL REFERENCES accounts (id) ON DELETE CASCADE ON UPDATE CASCADE,
4545- cookie_id TEXT NOT NULL,
4646- year INT NOT NULL,
4747- ranking INT NOT NULL,
4848- created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
4949- UNIQUE (account_id, cookie_id, year),
5050- UNIQUE (account_id, year, ranking),
5151- FOREIGN KEY (cookie_id, year) REFERENCES cookies (id, year) ON DELETE CASCADE ON UPDATE CASCADE
5252-);
5353-5454-CREATE TABLE IF NOT EXISTS comments (
5555- id BIGINT PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
5656- account_id CITEXT NOT NULL REFERENCES accounts (id) ON DELETE CASCADE ON UPDATE CASCADE,
5757- review_id BIGINT NOT NULL REFERENCES comments (id) ON DELETE CASCADE ON UPDATE CASCADE,
5858- comment TEXT NOT NULL,
5959- created_at TIMESTAMPTZ NOT NULL DEFAULT now()
6060-);
11+-- Enter migration here