@@ -150,45 +150,44 @@ EOF
150150
151151 run_sql -c " $PATCH_PGMQ_QUERY "
152152 run_sql -c " update pg_extension set extowner = 'postgres'::regrole where extname = 'pgmq';"
153+ fi
153154
154- # Patch to handle upgrading to pgsodium-less Vault
155- REENCRYPT_VAULT_SECRETS_QUERY=$( cat << EOF
156- DO \$\$
157- BEGIN
158- IF EXISTS (SELECT FROM pg_available_extension_versions WHERE name = 'supabase_vault' AND version = '0.3.0')
159- AND EXISTS (SELECT FROM pg_extension WHERE extname = 'supabase_vault')
160- THEN
161- IF (SELECT extversion FROM pg_extension WHERE extname = 'supabase_vault') != '0.2.8' THEN
162- GRANT USAGE ON SCHEMA vault TO postgres WITH GRANT OPTION;
163- GRANT SELECT, DELETE ON vault.secrets, vault.decrypted_secrets TO postgres WITH GRANT OPTION;
164- GRANT EXECUTE ON FUNCTION vault.create_secret, vault.update_secret, vault._crypto_aead_det_decrypt TO postgres WITH GRANT OPTION;
165- END IF;
166- -- Do an explicit IF EXISTS check to avoid referencing pgsodium objects if the project already migrated away from using pgsodium.
167- IF EXISTS (SELECT FROM vault.secrets WHERE key_id IS NOT NULL) THEN
168- UPDATE vault.secrets s
169- SET
170- secret = encode(
171- vault._crypto_aead_det_encrypt(
172- message := pgsodium.crypto_aead_det_decrypt(decode(s.secret, 'base64'), convert_to(s.id || s.description || s.created_at || s.updated_at, 'utf8'), s.key_id, s.nonce),
173- additional := convert_to(s.id::text, 'utf8'),
174- key_id := 0,
175- context := 'pgsodium'::bytea,
176- nonce := s.nonce
177- ),
178- 'base64'
179- ),
180- key_id = NULL
181- WHERE
182- key_id IS NOT NULL;
183- END IF;
184- END IF;
185- RAISE EXCEPTION 'aaaaaaa';
186- END
187- \$\$ ;
155+ # Patch to handle upgrading to pgsodium-less Vault
156+ REENCRYPT_VAULT_SECRETS_QUERY=$( cat << EOF
157+ DO \$\$
158+ BEGIN
159+ IF EXISTS (SELECT FROM pg_available_extension_versions WHERE name = 'supabase_vault' AND version = '0.3.0')
160+ AND EXISTS (SELECT FROM pg_extension WHERE extname = 'supabase_vault')
161+ THEN
162+ IF (SELECT extversion FROM pg_extension WHERE extname = 'supabase_vault') != '0.2.8' THEN
163+ GRANT USAGE ON SCHEMA vault TO postgres WITH GRANT OPTION;
164+ GRANT SELECT, DELETE ON vault.secrets, vault.decrypted_secrets TO postgres WITH GRANT OPTION;
165+ GRANT EXECUTE ON FUNCTION vault.create_secret, vault.update_secret, vault._crypto_aead_det_decrypt TO postgres WITH GRANT OPTION;
166+ END IF;
167+ -- Do an explicit IF EXISTS check to avoid referencing pgsodium objects if the project already migrated away from using pgsodium.
168+ IF EXISTS (SELECT FROM vault.secrets WHERE key_id IS NOT NULL) THEN
169+ UPDATE vault.secrets s
170+ SET
171+ secret = encode(
172+ vault._crypto_aead_det_encrypt(
173+ message := pgsodium.crypto_aead_det_decrypt(decode(s.secret, 'base64'), convert_to(s.id || s.description || s.created_at || s.updated_at, 'utf8'), s.key_id, s.nonce),
174+ additional := convert_to(s.id::text, 'utf8'),
175+ key_id := 0,
176+ context := 'pgsodium'::bytea,
177+ nonce := s.nonce
178+ ),
179+ 'base64'
180+ ),
181+ key_id = NULL
182+ WHERE
183+ key_id IS NOT NULL;
184+ END IF;
185+ END IF;
186+ END
187+ \$\$ ;
188188EOF
189- )
190- run_sql -c " $REENCRYPT_VAULT_SECRETS_QUERY "
191- fi
189+ )
190+ run_sql -c " $REENCRYPT_VAULT_SECRETS_QUERY "
192191
193192 run_sql -c " grant pg_read_all_data, pg_signal_backend to postgres"
194193}
0 commit comments