* refactor(DB): Defined v1.17.0 delta scripts * feat(DB): support of UT flag in sessions table
This commit is contained in:
parent
a6d5fe420b
commit
86a38aa61a
8 changed files with 147 additions and 6 deletions
|
|
@ -0,0 +1 @@
|
|||
CREATE OR REPLACE FUNCTION openreplay_version AS() -> 'v1.17.0-ee';
|
||||
38
ee/scripts/schema/db/init_dbs/postgresql/1.17.0/1.17.0.sql
Normal file
38
ee/scripts/schema/db/init_dbs/postgresql/1.17.0/1.17.0.sql
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
\set previous_version 'v1.16.0-ee'
|
||||
\set next_version 'v1.17.0-ee'
|
||||
SELECT openreplay_version() AS current_version,
|
||||
openreplay_version() = :'previous_version' AS valid_previous,
|
||||
openreplay_version() = :'next_version' AS is_next
|
||||
\gset
|
||||
|
||||
\if :valid_previous
|
||||
\echo valid previous DB version :'previous_version', starting DB upgrade to :'next_version'
|
||||
BEGIN;
|
||||
SELECT format($fn_def$
|
||||
CREATE OR REPLACE FUNCTION openreplay_version()
|
||||
RETURNS text AS
|
||||
$$
|
||||
SELECT '%1$s'
|
||||
$$ LANGUAGE sql IMMUTABLE;
|
||||
$fn_def$, :'next_version')
|
||||
\gexec
|
||||
|
||||
--
|
||||
|
||||
ALTER TABLE IF EXISTS public.sessions
|
||||
ADD COLUMN IF NOT EXISTS has_ut_test boolean DEFAULT FALSE;
|
||||
|
||||
-- !!! The following query takes a lot of time
|
||||
CREATE INDEX IF NOT EXISTS sessions_session_id_has_ut_test_idx ON public.sessions (session_id, has_ut_test);
|
||||
|
||||
UPDATE public.sessions
|
||||
SET has_ut_test= TRUE
|
||||
WHERE session_id IN (SELECT session_id FROM public.ut_tests_signals);
|
||||
|
||||
COMMIT;
|
||||
|
||||
\elif :is_next
|
||||
\echo new version detected :'next_version', nothing to do
|
||||
\else
|
||||
\warn skipping DB upgrade of :'next_version', expected previous version :'previous_version', found :'current_version'
|
||||
\endif
|
||||
|
|
@ -9,7 +9,7 @@ CREATE EXTENSION IF NOT EXISTS pgcrypto;
|
|||
CREATE OR REPLACE FUNCTION openreplay_version()
|
||||
RETURNS text AS
|
||||
$$
|
||||
SELECT 'v1.16.0-ee'
|
||||
SELECT 'v1.17.0-ee'
|
||||
$$ LANGUAGE sql IMMUTABLE;
|
||||
|
||||
|
||||
|
|
@ -460,6 +460,7 @@ $$
|
|||
referrer text NULL DEFAULT NULL,
|
||||
base_referrer text NULL DEFAULT NULL,
|
||||
file_key bytea DEFAULT NULL,
|
||||
has_ut_test boolean DEFAULT FALSE,
|
||||
metadata_1 text DEFAULT NULL,
|
||||
metadata_2 text DEFAULT NULL,
|
||||
metadata_3 text DEFAULT NULL,
|
||||
|
|
@ -515,12 +516,13 @@ $$
|
|||
CREATE INDEX sessions_utm_medium_gin_idx ON public.sessions USING GIN (utm_medium gin_trgm_ops);
|
||||
CREATE INDEX sessions_utm_campaign_gin_idx ON public.sessions USING GIN (utm_campaign gin_trgm_ops);
|
||||
CREATE INDEX sessions_base_referrer_gin_idx ON public.sessions USING GIN (base_referrer gin_trgm_ops);
|
||||
CREATE INDEX sessions_session_id_has_ut_test_idx ON public.sessions (session_id, has_ut_test);
|
||||
|
||||
|
||||
ALTER TABLE public.sessions
|
||||
ADD CONSTRAINT web_browser_constraint CHECK (
|
||||
(sessions.platform = 'web' AND sessions.user_browser NOTNULL) OR
|
||||
(sessions.platform != 'web' AND sessions.user_browser ISNULL));
|
||||
(sessions.platform = 'web' AND sessions.user_browser NOTNULL) OR
|
||||
(sessions.platform != 'web' AND sessions.user_browser ISNULL));
|
||||
|
||||
ALTER TABLE public.sessions
|
||||
ADD CONSTRAINT web_user_browser_version_constraint CHECK ( sessions.platform = 'web' OR sessions.user_browser_version ISNULL);
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
CREATE OR REPLACE FUNCTION openreplay_version AS() -> 'v1.16.0-ee';
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
\set previous_version 'v1.17.0-ee'
|
||||
\set next_version 'v1.16.0-ee'
|
||||
SELECT openreplay_version() AS current_version,
|
||||
openreplay_version() = :'previous_version' AS valid_previous,
|
||||
openreplay_version() = :'next_version' AS is_next
|
||||
\gset
|
||||
|
||||
\if :valid_previous
|
||||
\echo valid previous DB version :'previous_version', starting DB downgrade to :'next_version'
|
||||
BEGIN;
|
||||
SELECT format($fn_def$
|
||||
CREATE OR REPLACE FUNCTION openreplay_version()
|
||||
RETURNS text AS
|
||||
$$
|
||||
SELECT '%1$s'
|
||||
$$ LANGUAGE sql IMMUTABLE;
|
||||
$fn_def$, :'next_version')
|
||||
\gexec
|
||||
|
||||
--
|
||||
|
||||
|
||||
COMMIT;
|
||||
|
||||
\elif :is_next
|
||||
\echo new version detected :'next_version', nothing to do
|
||||
\else
|
||||
\warn skipping DB downgrade of :'next_version', expected previous version :'previous_version', found :'current_version'
|
||||
\endif
|
||||
38
scripts/schema/db/init_dbs/postgresql/1.17.0/1.17.0.sql
Normal file
38
scripts/schema/db/init_dbs/postgresql/1.17.0/1.17.0.sql
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
\set previous_version 'v1.16.0'
|
||||
\set next_version 'v1.17.0'
|
||||
SELECT openreplay_version() AS current_version,
|
||||
openreplay_version() = :'previous_version' AS valid_previous,
|
||||
openreplay_version() = :'next_version' AS is_next
|
||||
\gset
|
||||
|
||||
\if :valid_previous
|
||||
\echo valid previous DB version :'previous_version', starting DB upgrade to :'next_version'
|
||||
BEGIN;
|
||||
SELECT format($fn_def$
|
||||
CREATE OR REPLACE FUNCTION openreplay_version()
|
||||
RETURNS text AS
|
||||
$$
|
||||
SELECT '%1$s'
|
||||
$$ LANGUAGE sql IMMUTABLE;
|
||||
$fn_def$, :'next_version')
|
||||
\gexec
|
||||
|
||||
--
|
||||
|
||||
ALTER TABLE IF EXISTS public.sessions
|
||||
ADD COLUMN IF NOT EXISTS has_ut_test boolean DEFAULT FALSE;
|
||||
|
||||
-- !!! The following query takes a lot of time
|
||||
CREATE INDEX IF NOT EXISTS sessions_session_id_has_ut_test_idx ON public.sessions (session_id, has_ut_test);
|
||||
|
||||
UPDATE public.sessions
|
||||
SET has_ut_test= TRUE
|
||||
WHERE session_id IN (SELECT session_id FROM public.ut_tests_signals);
|
||||
|
||||
COMMIT;
|
||||
|
||||
\elif :is_next
|
||||
\echo new version detected :'next_version', nothing to do
|
||||
\else
|
||||
\warn skipping DB upgrade of :'next_version', expected previous version :'previous_version', found :'current_version'
|
||||
\endif
|
||||
|
|
@ -9,7 +9,7 @@ CREATE EXTENSION IF NOT EXISTS pgcrypto;
|
|||
CREATE OR REPLACE FUNCTION openreplay_version()
|
||||
RETURNS text AS
|
||||
$$
|
||||
SELECT 'v1.16.0'
|
||||
SELECT 'v1.17.0'
|
||||
$$ LANGUAGE sql IMMUTABLE;
|
||||
|
||||
|
||||
|
|
@ -421,6 +421,7 @@ $$
|
|||
utm_campaign text NULL DEFAULT NULL,
|
||||
referrer text NULL DEFAULT NULL,
|
||||
base_referrer text NULL DEFAULT NULL,
|
||||
has_ut_test boolean DEFAULT FALSE,
|
||||
metadata_1 text DEFAULT NULL,
|
||||
metadata_2 text DEFAULT NULL,
|
||||
metadata_3 text DEFAULT NULL,
|
||||
|
|
@ -476,12 +477,13 @@ $$
|
|||
CREATE INDEX sessions_utm_medium_gin_idx ON public.sessions USING GIN (utm_medium gin_trgm_ops);
|
||||
CREATE INDEX sessions_utm_campaign_gin_idx ON public.sessions USING GIN (utm_campaign gin_trgm_ops);
|
||||
CREATE INDEX sessions_base_referrer_gin_idx ON public.sessions USING GIN (base_referrer gin_trgm_ops);
|
||||
CREATE INDEX sessions_session_id_has_ut_test_idx ON public.sessions (session_id, has_ut_test);
|
||||
|
||||
|
||||
ALTER TABLE public.sessions
|
||||
ADD CONSTRAINT web_browser_constraint CHECK (
|
||||
(sessions.platform = 'web' AND sessions.user_browser NOTNULL) OR
|
||||
(sessions.platform != 'web' AND sessions.user_browser ISNULL));
|
||||
(sessions.platform = 'web' AND sessions.user_browser NOTNULL) OR
|
||||
(sessions.platform != 'web' AND sessions.user_browser ISNULL));
|
||||
|
||||
ALTER TABLE public.sessions
|
||||
ADD CONSTRAINT web_user_browser_version_constraint CHECK ( sessions.platform = 'web' OR sessions.user_browser_version ISNULL);
|
||||
|
|
|
|||
30
scripts/schema/db/rollback_dbs/postgresql/1.17.0/1.17.0.sql
Normal file
30
scripts/schema/db/rollback_dbs/postgresql/1.17.0/1.17.0.sql
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
\set previous_version 'v1.17.0'
|
||||
\set next_version 'v1.16.0'
|
||||
SELECT openreplay_version() AS current_version,
|
||||
openreplay_version() = :'previous_version' AS valid_previous,
|
||||
openreplay_version() = :'next_version' AS is_next
|
||||
\gset
|
||||
|
||||
\if :valid_previous
|
||||
\echo valid previous DB version :'previous_version', starting DB downgrade to :'next_version'
|
||||
BEGIN;
|
||||
SELECT format($fn_def$
|
||||
CREATE OR REPLACE FUNCTION openreplay_version()
|
||||
RETURNS text AS
|
||||
$$
|
||||
SELECT '%1$s'
|
||||
$$ LANGUAGE sql IMMUTABLE;
|
||||
$fn_def$, :'next_version')
|
||||
\gexec
|
||||
|
||||
--
|
||||
|
||||
|
||||
|
||||
COMMIT;
|
||||
|
||||
\elif :is_next
|
||||
\echo new version detected :'next_version', nothing to do
|
||||
\else
|
||||
\warn skipping DB downgrade of :'next_version', expected previous version :'previous_version', found :'current_version'
|
||||
\endif
|
||||
Loading…
Add table
Reference in a new issue