Merge pull request #1678 from Rjevski/idempotent-database-migrations

Make DB migrations idempotent.
This commit is contained in:
syeopite 2021-10-03 18:53:35 +00:00 committed by GitHub
commit 347c189f3f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 33 additions and 33 deletions

View file

@ -2,11 +2,11 @@
-- DROP TABLE public.annotations; -- DROP TABLE public.annotations;
CREATE TABLE public.annotations CREATE TABLE IF NOT EXISTS public.annotations
( (
id text NOT NULL, id text NOT NULL,
annotations xml, annotations xml,
CONSTRAINT annotations_id_key UNIQUE (id) CONSTRAINT annotations_id_key UNIQUE (id)
); );
GRANT ALL ON TABLE public.annotations TO kemal; GRANT ALL ON TABLE public.annotations TO current_user;

View file

@ -2,7 +2,7 @@
-- DROP TABLE public.channel_videos; -- DROP TABLE public.channel_videos;
CREATE TABLE public.channel_videos CREATE TABLE IF NOT EXISTS public.channel_videos
( (
id text NOT NULL, id text NOT NULL,
title text, title text,
@ -17,13 +17,13 @@ CREATE TABLE public.channel_videos
CONSTRAINT channel_videos_id_key UNIQUE (id) CONSTRAINT channel_videos_id_key UNIQUE (id)
); );
GRANT ALL ON TABLE public.channel_videos TO kemal; GRANT ALL ON TABLE public.channel_videos TO current_user;
-- Index: public.channel_videos_ucid_idx -- Index: public.channel_videos_ucid_idx
-- DROP INDEX public.channel_videos_ucid_idx; -- DROP INDEX public.channel_videos_ucid_idx;
CREATE INDEX channel_videos_ucid_idx CREATE INDEX IF NOT EXISTS channel_videos_ucid_idx
ON public.channel_videos ON public.channel_videos
USING btree USING btree
(ucid COLLATE pg_catalog."default"); (ucid COLLATE pg_catalog."default");

View file

@ -2,7 +2,7 @@
-- DROP TABLE public.channels; -- DROP TABLE public.channels;
CREATE TABLE public.channels CREATE TABLE IF NOT EXISTS public.channels
( (
id text NOT NULL, id text NOT NULL,
author text, author text,
@ -12,13 +12,13 @@ CREATE TABLE public.channels
CONSTRAINT channels_id_key UNIQUE (id) CONSTRAINT channels_id_key UNIQUE (id)
); );
GRANT ALL ON TABLE public.channels TO kemal; GRANT ALL ON TABLE public.channels TO current_user;
-- Index: public.channels_id_idx -- Index: public.channels_id_idx
-- DROP INDEX public.channels_id_idx; -- DROP INDEX public.channels_id_idx;
CREATE INDEX channels_id_idx CREATE INDEX IF NOT EXISTS channels_id_idx
ON public.channels ON public.channels
USING btree USING btree
(id COLLATE pg_catalog."default"); (id COLLATE pg_catalog."default");

View file

@ -2,20 +2,20 @@
-- DROP TABLE public.nonces; -- DROP TABLE public.nonces;
CREATE TABLE public.nonces CREATE TABLE IF NOT EXISTS public.nonces
( (
nonce text, nonce text,
expire timestamp with time zone, expire timestamp with time zone,
CONSTRAINT nonces_id_key UNIQUE (nonce) CONSTRAINT nonces_id_key UNIQUE (nonce)
); );
GRANT ALL ON TABLE public.nonces TO kemal; GRANT ALL ON TABLE public.nonces TO current_user;
-- Index: public.nonces_nonce_idx -- Index: public.nonces_nonce_idx
-- DROP INDEX public.nonces_nonce_idx; -- DROP INDEX public.nonces_nonce_idx;
CREATE INDEX nonces_nonce_idx CREATE INDEX IF NOT EXISTS nonces_nonce_idx
ON public.nonces ON public.nonces
USING btree USING btree
(nonce COLLATE pg_catalog."default"); (nonce COLLATE pg_catalog."default");

View file

@ -2,7 +2,7 @@
-- DROP TABLE public.playlist_videos; -- DROP TABLE public.playlist_videos;
CREATE TABLE playlist_videos CREATE TABLE IF NOT EXISTS playlist_videos
( (
title text, title text,
id text, id text,
@ -16,4 +16,4 @@ CREATE TABLE playlist_videos
PRIMARY KEY (index,plid) PRIMARY KEY (index,plid)
); );
GRANT ALL ON TABLE public.playlist_videos TO kemal; GRANT ALL ON TABLE public.playlist_videos TO current_user;

View file

@ -13,7 +13,7 @@ CREATE TYPE public.privacy AS ENUM
-- DROP TABLE public.playlists; -- DROP TABLE public.playlists;
CREATE TABLE public.playlists CREATE TABLE IF NOT EXISTS public.playlists
( (
title text, title text,
id text primary key, id text primary key,
@ -26,4 +26,4 @@ CREATE TABLE public.playlists
index int8[] index int8[]
); );
GRANT ALL ON public.playlists TO kemal; GRANT ALL ON public.playlists TO current_user;

View file

@ -2,7 +2,7 @@
-- DROP TABLE public.session_ids; -- DROP TABLE public.session_ids;
CREATE TABLE public.session_ids CREATE TABLE IF NOT EXISTS public.session_ids
( (
id text NOT NULL, id text NOT NULL,
email text, email text,
@ -10,13 +10,13 @@ CREATE TABLE public.session_ids
CONSTRAINT session_ids_pkey PRIMARY KEY (id) CONSTRAINT session_ids_pkey PRIMARY KEY (id)
); );
GRANT ALL ON TABLE public.session_ids TO kemal; GRANT ALL ON TABLE public.session_ids TO current_user;
-- Index: public.session_ids_id_idx -- Index: public.session_ids_id_idx
-- DROP INDEX public.session_ids_id_idx; -- DROP INDEX public.session_ids_id_idx;
CREATE INDEX session_ids_id_idx CREATE INDEX IF NOT EXISTS session_ids_id_idx
ON public.session_ids ON public.session_ids
USING btree USING btree
(id COLLATE pg_catalog."default"); (id COLLATE pg_catalog."default");

View file

@ -2,7 +2,7 @@
-- DROP TABLE public.users; -- DROP TABLE public.users;
CREATE TABLE public.users CREATE TABLE IF NOT EXISTS public.users
( (
updated timestamp with time zone, updated timestamp with time zone,
notifications text[], notifications text[],
@ -16,13 +16,13 @@ CREATE TABLE public.users
CONSTRAINT users_email_key UNIQUE (email) CONSTRAINT users_email_key UNIQUE (email)
); );
GRANT ALL ON TABLE public.users TO kemal; GRANT ALL ON TABLE public.users TO current_user;
-- Index: public.email_unique_idx -- Index: public.email_unique_idx
-- DROP INDEX public.email_unique_idx; -- DROP INDEX public.email_unique_idx;
CREATE UNIQUE INDEX email_unique_idx CREATE UNIQUE INDEX IF NOT EXISTS email_unique_idx
ON public.users ON public.users
USING btree USING btree
(lower(email) COLLATE pg_catalog."default"); (lower(email) COLLATE pg_catalog."default");

View file

@ -2,7 +2,7 @@
-- DROP TABLE public.videos; -- DROP TABLE public.videos;
CREATE TABLE public.videos CREATE TABLE IF NOT EXISTS public.videos
( (
id text NOT NULL, id text NOT NULL,
info text, info text,
@ -10,13 +10,13 @@ CREATE TABLE public.videos
CONSTRAINT videos_pkey PRIMARY KEY (id) CONSTRAINT videos_pkey PRIMARY KEY (id)
); );
GRANT ALL ON TABLE public.videos TO kemal; GRANT ALL ON TABLE public.videos TO current_user;
-- Index: public.id_idx -- Index: public.id_idx
-- DROP INDEX public.id_idx; -- DROP INDEX public.id_idx;
CREATE UNIQUE INDEX id_idx CREATE UNIQUE INDEX IF NOT EXISTS id_idx
ON public.videos ON public.videos
USING btree USING btree
(id COLLATE pg_catalog."default"); (id COLLATE pg_catalog."default");

View file

@ -5,12 +5,12 @@ psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-E
CREATE USER postgres; CREATE USER postgres;
EOSQL EOSQL
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" < config/sql/channels.sql psql --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" < config/sql/channels.sql
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" < config/sql/videos.sql psql --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" < config/sql/videos.sql
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" < config/sql/channel_videos.sql psql --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" < config/sql/channel_videos.sql
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" < config/sql/users.sql psql --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" < config/sql/users.sql
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" < config/sql/session_ids.sql psql --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" < config/sql/session_ids.sql
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" < config/sql/nonces.sql psql --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" < config/sql/nonces.sql
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" < config/sql/annotations.sql psql --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" < config/sql/annotations.sql
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" < config/sql/playlists.sql psql --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" < config/sql/playlists.sql
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" < config/sql/playlist_videos.sql psql --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" < config/sql/playlist_videos.sql