mirror of
https://github.com/hcengineering/platform.git
synced 2024-12-23 11:31:57 +03:00
084eca268e
Some checks are pending
CI / build (push) Waiting to run
CI / svelte-check (push) Blocked by required conditions
CI / formatting (push) Blocked by required conditions
CI / test (push) Blocked by required conditions
CI / uitest (push) Waiting to run
CI / uitest-pg (push) Waiting to run
CI / uitest-qms (push) Waiting to run
CI / docker-build (push) Blocked by required conditions
CI / dist-build (push) Blocked by required conditions
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
37 lines
1.1 KiB
SQL
37 lines
1.1 KiB
SQL
DO $$
|
|
DECLARE
|
|
tbl_name text;
|
|
hash_col_not_exists boolean;
|
|
data_col_exists boolean;
|
|
BEGIN
|
|
FOR tbl_name IN
|
|
SELECT table_name
|
|
FROM information_schema.tables
|
|
WHERE table_schema = 'public'
|
|
AND table_type = 'BASE TABLE'
|
|
LOOP
|
|
EXECUTE format('
|
|
SELECT EXISTS (
|
|
SELECT 1
|
|
FROM information_schema.columns
|
|
WHERE table_name = %L
|
|
AND column_name = ''data''
|
|
AND data_type = ''jsonb''
|
|
);', tbl_name) INTO data_col_exists;
|
|
|
|
EXECUTE format('
|
|
SELECT NOT EXISTS (
|
|
SELECT 1
|
|
FROM information_schema.columns
|
|
WHERE table_name = %L
|
|
AND column_name = ''"%%hash%%"''
|
|
);', tbl_name) INTO hash_col_not_exists;
|
|
|
|
IF data_col_exists AND hash_col_not_exists THEN
|
|
EXECUTE format('
|
|
ALTER TABLE %I ADD COLUMN "%%hash%%" text;', tbl_name);
|
|
EXECUTE format('
|
|
UPDATE %I SET "%%hash%%" = data->>''%%data%%'';', tbl_name);
|
|
END IF;
|
|
END LOOP;
|
|
END $$; |