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 (
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;`
getShowQueryByImdbID = `SELECT * FROM shows WHERE imdbid=$1;`
getShowQueryByID = `SELECT * FROM shows WHERE id=$1;`
deleteShowQuery = `DELETE FROM shows WHERE id=$1;`
getShowQueryByImdbID = `
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 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 = `
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;`
getEpisodesQuery = `
SELECT title, season, episode, tvdbid, aired, plot, runtime, rating, imdbid AS episodeimdbid, shows_id AS showid
FROM episodes WHERE shows_id=$1;`
SELECT title, season, episode, tvdb_id AS tvdbid, aired, plot, runtime, rating, imdb_id AS episodeimdbid, show_id AS showid
FROM episodes WHERE show_id=$1;`
getShowWithUserQueryByImdbID = `
SELECT
shows.id,
shows.imdbid,
shows.imdb_id AS imdbid,
shows.title,
shows.rating,
shows.plot,
shows.tvdbid,
shows.tvdb_id AS tvdbid,
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.episode,0) AS trackedepisode
FROM shows LEFT JOIN shows_tracked ON shows.id=shows_tracked.shows_id AND shows_tracked.users_id=$2
WHERE shows.imdbid=$1;`
FROM shows LEFT JOIN shows_tracked ON shows.id=shows_tracked.show_id AND shows_tracked.user_id=$2
WHERE shows.imdb_id=$1;`
getShowWithUserQueryByID = `
SELECT
shows.id,
shows.imdbid,
shows.imdb_id AS imdbid,
shows.title,
shows.rating,
shows.plot,
shows.tvdbid,
shows.tvdb_id AS tvdbid,
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.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;`
)

View File

@ -126,7 +126,7 @@ func TestTrackedShow(t *testing.T) {
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)
if err != nil {
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 (
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
imdbid text NOT NULL UNIQUE,
imdb_id text NOT NULL UNIQUE,
title text NOT NULL,
rating real NOT NULL,
plot text NOT NULL,
tvdbid text NOT NULL,
tvdb_id text NOT NULL,
year smallint NOT NULL,
firstaired timestamp,
first_aired timestamp,
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 TABLE episodes (
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,
season smallint NOT NULL,
episode smallint NOT NULL,
tvdbid text NOT NULL,
tvdb_id text NOT NULL,
aired text NOT NULL,
plot text NOT NULL,
runtime smallint NOT NULL,
rating real NOT NULL,
imdbid text NOT NULL,
imdb_id text NOT NULL,
LIKE base INCLUDING DEFAULTS
);
CREATE INDEX ON episodes (shows_id, season);
CREATE INDEX ON episodes (shows_id, season, episode);
CREATE INDEX ON episodes (show_id, season);
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 TABLE shows_tracked (
shows_id uuid NOT NULL REFERENCES shows (id) ON DELETE CASCADE,
users_id uuid NOT NULL REFERENCES users (id) ON DELETE CASCADE,
show_id uuid NOT NULL REFERENCES shows (id) ON DELETE CASCADE,
user_id uuid NOT NULL REFERENCES users (id) ON DELETE CASCADE,
season smallint NOT NULL,
episode smallint NOT NULL
);
CREATE INDEX ON shows_tracked (shows_id, users_id);
CREATE INDEX ON shows_tracked (users_id);
CREATE INDEX ON shows_tracked (show_id, user_id);
CREATE INDEX ON shows_tracked (user_id);
CREATE TABLE movies (
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),