Rename shows and episodes columns

This commit is contained in:
Nicolas Duhamel 2016-02-24 13:59:12 +01:00
parent c4af945e18
commit bdb608ae6e
3 changed files with 50 additions and 30 deletions

View File

@ -13,49 +13,69 @@ import (
const ( const (
addShowQuery = ` addShowQuery = `
INSERT INTO shows (imdbid, title, rating, plot, tvdbid, year, firstaired) INSERT INTO shows (imdb_id, title, rating, plot, tvdb_id, year, first_aired)
VALUES (:imdbid, :title, :rating, :plot, :tvdbid, :year, :firstaired) RETURNING id;` VALUES (:imdbid, :title, :rating, :plot, :tvdbid, :year, :firstaired) RETURNING id;`
getShowQueryByImdbID = `SELECT * FROM shows WHERE imdbid=$1;` getShowQueryByImdbID = `
getShowQueryByID = `SELECT * FROM shows WHERE id=$1;` SELECT
deleteShowQuery = `DELETE FROM shows WHERE id=$1;` id, imdb_id AS imdbid,
title, rating, plot,
tvdb_id AS tvdbid,
year, first_aired AS firstaired,
created_at, updated_at
FROM shows WHERE imdb_id=$1;`
getShowQueryByID = `
SELECT
id, imdb_id AS imdbid,
title, rating, plot,
tvdb_id AS tvdbid,
year, first_aired AS firstaired,
created_at, updated_at
FROM shows WHERE id=$1;`
deleteShowQuery = `DELETE FROM shows WHERE id=$1;`
addEpisodeQuery = ` addEpisodeQuery = `
INSERT INTO episodes (shows_id, title, season, episode, tvdbid, aired, plot, runtime, rating, imdbid) INSERT INTO episodes (show_id, title, season, episode, tvdb_id, aired, plot, runtime, rating, imdb_id)
VALUES (:showid, :title, :season, :episode, :tvdbid, :aired, :plot, :runtime, :rating, :episodeimdbid) RETURNING id;` VALUES (:showid, :title, :season, :episode, :tvdbid, :aired, :plot, :runtime, :rating, :episodeimdbid) RETURNING id;`
getEpisodesQuery = ` getEpisodesQuery = `
SELECT title, season, episode, tvdbid, aired, plot, runtime, rating, imdbid AS episodeimdbid, shows_id AS showid SELECT title, season, episode, tvdb_id AS tvdbid, aired, plot, runtime, rating, imdb_id AS episodeimdbid, show_id AS showid
FROM episodes WHERE shows_id=$1;` FROM episodes WHERE show_id=$1;`
getShowWithUserQueryByImdbID = ` getShowWithUserQueryByImdbID = `
SELECT SELECT
shows.id, shows.id,
shows.imdbid, shows.imdb_id AS imdbid,
shows.title, shows.title,
shows.rating, shows.rating,
shows.plot, shows.plot,
shows.tvdbid, shows.tvdb_id AS tvdbid,
shows.year, shows.year,
shows.firstaired, shows.first_aired AS firstaired,
shows.created_at,
shows.updated_at,
COALESCE(shows_tracked.season,0) AS trackedseason, COALESCE(shows_tracked.season,0) AS trackedseason,
COALESCE(shows_tracked.episode,0) AS trackedepisode COALESCE(shows_tracked.episode,0) AS trackedepisode
FROM shows LEFT JOIN shows_tracked ON shows.id=shows_tracked.shows_id AND shows_tracked.users_id=$2 FROM shows LEFT JOIN shows_tracked ON shows.id=shows_tracked.show_id AND shows_tracked.user_id=$2
WHERE shows.imdbid=$1;` WHERE shows.imdb_id=$1;`
getShowWithUserQueryByID = ` getShowWithUserQueryByID = `
SELECT SELECT
shows.id, shows.id,
shows.imdbid, shows.imdb_id AS imdbid,
shows.title, shows.title,
shows.rating, shows.rating,
shows.plot, shows.plot,
shows.tvdbid, shows.tvdb_id AS tvdbid,
shows.year, shows.year,
shows.firstaired, shows.first_aired AS firstaired,
shows.created_at,
shows.updated_at,
COALESCE(shows_tracked.season,0) AS trackedseason, COALESCE(shows_tracked.season,0) AS trackedseason,
COALESCE(shows_tracked.episode,0) AS trackedepisode COALESCE(shows_tracked.episode,0) AS trackedepisode
FROM shows LEFT JOIN shows_tracked ON shows.id=shows_tracked.shows_id AND shows_tracked.users_id=$2 FROM shows LEFT JOIN shows_tracked ON shows.id=shows_tracked.show_id AND shows_tracked.user_id=$2
WHERE shows.id=$1;` WHERE shows.id=$1;`
) )

View File

@ -126,7 +126,7 @@ func TestTrackedShow(t *testing.T) {
t.Fatal("Tracked must be false here") t.Fatal("Tracked must be false here")
} }
q := `INSERT INTO shows_tracked (shows_id, users_id, season, episode) VALUES ($1, $2, $3, $4);` q := `INSERT INTO shows_tracked (show_id, user_id, season, episode) VALUES ($1, $2, $3, $4);`
_, err = db.Exec(q, show.ID, u.ID, 1, 1) _, err = db.Exec(q, show.ID, u.ID, 1, 1)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)

View File

@ -31,44 +31,44 @@ CREATE TRIGGER update_tokens_updated_at BEFORE UPDATE ON tokens FOR EACH ROW EXE
CREATE TABLE shows ( CREATE TABLE shows (
id uuid PRIMARY KEY DEFAULT gen_random_uuid(), id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
imdbid text NOT NULL UNIQUE, imdb_id text NOT NULL UNIQUE,
title text NOT NULL, title text NOT NULL,
rating real NOT NULL, rating real NOT NULL,
plot text NOT NULL, plot text NOT NULL,
tvdbid text NOT NULL, tvdb_id text NOT NULL,
year smallint NOT NULL, year smallint NOT NULL,
firstaired timestamp, first_aired timestamp,
LIKE base INCLUDING DEFAULTS LIKE base INCLUDING DEFAULTS
); );
CREATE INDEX ON shows (imdbid); 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_modified_column();
CREATE TABLE episodes ( CREATE TABLE episodes (
id uuid PRIMARY KEY DEFAULT gen_random_uuid(), id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
shows_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,
episode smallint NOT NULL, episode smallint NOT NULL,
tvdbid text NOT NULL, tvdb_id text NOT NULL,
aired text NOT NULL, aired text NOT NULL,
plot text NOT NULL, plot text NOT NULL,
runtime smallint NOT NULL, runtime smallint NOT NULL,
rating real NOT NULL, rating real NOT NULL,
imdbid text NOT NULL, imdb_id text NOT NULL,
LIKE base INCLUDING DEFAULTS LIKE base INCLUDING DEFAULTS
); );
CREATE INDEX ON episodes (shows_id, season); CREATE INDEX ON episodes (show_id, season);
CREATE INDEX ON episodes (shows_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_modified_column();
CREATE TABLE shows_tracked ( CREATE TABLE shows_tracked (
shows_id uuid NOT NULL REFERENCES shows (id) ON DELETE CASCADE, show_id uuid NOT NULL REFERENCES shows (id) ON DELETE CASCADE,
users_id uuid NOT NULL REFERENCES users (id) ON DELETE CASCADE, user_id uuid NOT NULL REFERENCES users (id) ON DELETE CASCADE,
season smallint NOT NULL, season smallint NOT NULL,
episode smallint NOT NULL episode smallint NOT NULL
); );
CREATE INDEX ON shows_tracked (shows_id, users_id); CREATE INDEX ON shows_tracked (show_id, user_id);
CREATE INDEX ON shows_tracked (users_id); CREATE INDEX ON shows_tracked (user_id);
CREATE TABLE movies ( CREATE TABLE movies (
id uuid PRIMARY KEY DEFAULT gen_random_uuid(), id uuid PRIMARY KEY DEFAULT gen_random_uuid(),