mirror of
https://github.com/hcengineering/platform.git
synced 2024-12-25 04:25:13 +03:00
f9e3aed4fe
Signed-off-by: Andrey Sobolev <haiodo@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->>''%%hash%%'';', tbl_name);
|
|
END IF;
|
|
END LOOP;
|
|
END $$; |