Let's greg sleep better

This commit is contained in:
Nicolas Duhamel 2016-02-24 15:01:59 +01:00
parent 049c3b208c
commit 9b38464bbf
2 changed files with 14 additions and 14 deletions

View File

@ -8,5 +8,5 @@ DROP TABLE users;
DROP TABLE base; DROP TABLE base;
DROP FUNCTION update_modified_column(); DROP FUNCTION update_updated_at_column();

View File

@ -1,7 +1,7 @@
-- Enable UUID generation -- Enable UUID generation
CREATE EXTENSION IF NOT EXISTS pgcrypto; CREATE EXTENSION IF NOT EXISTS pgcrypto;
CREATE OR REPLACE FUNCTION update_modified_column() CREATE OR REPLACE FUNCTION update_updated_at_column()
RETURNS TRIGGER AS $$ RETURNS TRIGGER AS $$
BEGIN BEGIN
NEW.updated_at = now(); NEW.updated_at = now();
@ -9,8 +9,8 @@ BEGIN
END; $$ language 'plpgsql'; END; $$ language 'plpgsql';
CREATE TABLE base ( CREATE TABLE base (
updated_at timestamp DEFAULT current_timestamp, updated_at timestamp with time zone DEFAULT current_timestamp,
created_at timestamp DEFAULT current_timestamp created_at timestamp with time zone DEFAULT current_timestamp
); );
CREATE TABLE users ( CREATE TABLE users (
@ -19,15 +19,15 @@ CREATE TABLE users (
hash text NOT NULL, hash text NOT NULL,
LIKE base INCLUDING DEFAULTS LIKE base INCLUDING DEFAULTS
); );
CREATE TRIGGER update_users_updated_at BEFORE UPDATE ON users FOR EACH ROW EXECUTE PROCEDURE update_modified_column(); CREATE TRIGGER update_users_updated_at BEFORE UPDATE ON users FOR EACH ROW EXECUTE PROCEDURE update_updated_at_column();
CREATE TABLE tokens ( CREATE TABLE tokens (
id uuid PRIMARY KEY DEFAULT gen_random_uuid(), id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
value text NOT NULL UNIQUE, value text NOT NULL UNIQUE,
user_id uuid REFERENCES users (id) ON DELETE CASCADE, user_id uuid REFERENCES users (id) ON DELETE CASCADE,
LIKE base INCLUDING DEFAULTS LIKE base INCLUDING DEFAULTS
); );
CREATE TRIGGER update_tokens_updated_at BEFORE UPDATE ON tokens FOR EACH ROW EXECUTE PROCEDURE update_modified_column(); CREATE TRIGGER update_tokens_updated_at BEFORE UPDATE ON tokens FOR EACH ROW EXECUTE PROCEDURE update_updated_at_column();
CREATE TABLE shows ( CREATE TABLE shows (
id uuid PRIMARY KEY DEFAULT gen_random_uuid(), id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
@ -41,10 +41,11 @@ CREATE TABLE shows (
LIKE base INCLUDING DEFAULTS LIKE base INCLUDING DEFAULTS
); );
CREATE INDEX ON shows (imdb_id); CREATE INDEX ON shows (imdb_id);
CREATE TRIGGER update_shows_updated_at BEFORE UPDATE ON shows FOR EACH ROW EXECUTE PROCEDURE update_modified_column(); CREATE TRIGGER update_shows_updated_at BEFORE UPDATE ON shows FOR EACH ROW EXECUTE PROCEDURE update_updated_at_column();
CREATE TABLE episodes ( CREATE TABLE episodes (
id uuid PRIMARY KEY DEFAULT gen_random_uuid(), id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
imdb_id text NOT NULL,
show_id uuid REFERENCES shows (id) ON DELETE CASCADE, show_id uuid REFERENCES shows (id) ON DELETE CASCADE,
title text NOT NULL, title text NOT NULL,
season smallint NOT NULL, season smallint NOT NULL,
@ -54,12 +55,11 @@ CREATE TABLE episodes (
plot text NOT NULL, plot text NOT NULL,
runtime smallint NOT NULL, runtime smallint NOT NULL,
rating real NOT NULL, rating real NOT NULL,
imdb_id text NOT NULL,
LIKE base INCLUDING DEFAULTS LIKE base INCLUDING DEFAULTS
); );
CREATE INDEX ON episodes (show_id, season); CREATE INDEX ON episodes (show_id, season);
CREATE INDEX ON episodes (show_id, season, episode); CREATE INDEX ON episodes (show_id, season, episode);
CREATE TRIGGER update_episodes_updated_at BEFORE UPDATE ON episodes FOR EACH ROW EXECUTE PROCEDURE update_modified_column(); CREATE TRIGGER update_episodes_updated_at BEFORE UPDATE ON episodes FOR EACH ROW EXECUTE PROCEDURE update_updated_at_column();
CREATE TABLE shows_tracked ( CREATE TABLE shows_tracked (
show_id uuid NOT NULL REFERENCES shows (id) ON DELETE CASCADE, show_id uuid NOT NULL REFERENCES shows (id) ON DELETE CASCADE,
@ -86,4 +86,4 @@ CREATE TABLE movies (
LIKE base INCLUDING DEFAULTS LIKE base INCLUDING DEFAULTS
); );
CREATE INDEX ON movies (imdb_id); CREATE INDEX ON movies (imdb_id);
CREATE TRIGGER update_movies_updated_at BEFORE UPDATE ON movies FOR EACH ROW EXECUTE PROCEDURE update_modified_column(); CREATE TRIGGER update_movies_updated_at BEFORE UPDATE ON movies FOR EACH ROW EXECUTE PROCEDURE update_updated_at_column();