From a6f84f16223f51f29552d5c072b88b7cc13af6af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20Delattre?= Date: Sun, 12 Jun 2016 10:51:26 +0200 Subject: [PATCH] Add external medias SQL schema --- Makefile | 7 ++++++- sql/migration/0002_external_medias.down.sql | 4 ++++ sql/migration/0002_external_medias.up.sql | 15 +++++++++++++++ 3 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 sql/migration/0002_external_medias.down.sql create mode 100644 sql/migration/0002_external_medias.up.sql diff --git a/Makefile b/Makefile index cd35989..ac84aa2 100644 --- a/Makefile +++ b/Makefile @@ -53,8 +53,13 @@ docker: $(DOCKER_COMPOSE) up -d sleep 4 -migration: +migration-tool: + go get -v github.com/mattes/migrate + +migration-schema: docker migration-tool $(MIGRATION) -path $(MIGRATION_SCHEMA) up + +migration-dev-data: docker migration-schema $(MIGRATION) -path $(MIGRATION_TEST_DATA) up dev: docker migration watch diff --git a/sql/migration/0002_external_medias.down.sql b/sql/migration/0002_external_medias.down.sql new file mode 100644 index 0000000..e6dbbc4 --- /dev/null +++ b/sql/migration/0002_external_medias.down.sql @@ -0,0 +1,4 @@ +DROP TABLE external_medias; +DROP TYPE media_type; +DROP TYPE media_category; +DROP TYPE media_source; diff --git a/sql/migration/0002_external_medias.up.sql b/sql/migration/0002_external_medias.up.sql new file mode 100644 index 0000000..6168db5 --- /dev/null +++ b/sql/migration/0002_external_medias.up.sql @@ -0,0 +1,15 @@ +CREATE TYPE media_type AS ENUM ('movie', 'show'); +CREATE TYPE media_category AS ENUM ('trending', 'popular', 'anticipated', 'box_office'); +CREATE TYPE media_source AS ENUM ('trakttv'); + +CREATE TABLE external_medias ( + id uuid PRIMARY KEY DEFAULT gen_random_uuid(), + type media_type NOT NULL, + source media_source NOT NULL, + category media_category NOT NULL, + ids text[][] NOT NULL, + LIKE base INCLUDING DEFAULTS +); +CREATE TRIGGER update_external_medias_updated_at BEFORE UPDATE ON external_medias FOR EACH ROW EXECUTE PROCEDURE update_updated_at_column(); +CREATE INDEX ON external_medias (type, source, category); +