supabase-postgres.git / summary / log / commit / refs
commit 8ee2111f3660572beb9db83979e9fa419aeece78
Author: Paul Cioanca <paul.cioanca@supabase.io>
Commit: GitHub <noreply@github.com>
Date: Fri Mar 22 07:43:42 2024 +0000
chore: patch pg_cron perms post-pg_upgrade (#858)
.../pg_upgrade_scripts/complete.sh | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/ansible/files/admin_api_scripts/pg_upgrade_scripts/complete.sh b/ansible/files/admin_api_scripts/pg_upgrade_scripts/complete.sh
index 7711f840..b139091e 100755
--- a/ansible/files/admin_api_scripts/pg_upgrade_scripts/complete.sh
+++ b/ansible/files/admin_api_scripts/pg_upgrade_scripts/complete.sh
@@ -48,6 +48,28 @@ EOF
run_sql -c "$PG_NET_GRANT_QUERY"
fi
+
+ # Patching pg_cron ownership as it resets during upgrade
+ HAS_PG_CRON_OWNED_BY_POSTGRES=$(run_sql -A -t -c "select count(*) > 0 from pg_extension where extname = 'pg_cron' and extowner::regrole::text = 'postgres';")
+
+ if [ "$HAS_PG_CRON_OWNED_BY_POSTGRES" = "t" ]; then
+ RECREATE_PG_CRON_QUERY=$(cat <<EOF
+ begin;
+ create temporary table cron_job as select * from cron.job;
+ create temporary table cron_job_run_details as select * from cron.job_run_details;
+ drop extension pg_cron;
+ create extension pg_cron schema pg_catalog;
+ insert into cron.job select * from cron_job;
+ insert into cron.job_run_details select * from cron_job_run_details;
+ select setval('cron.jobid_seq', coalesce(max(jobid), 0) + 1, false) from cron.job;
+ select setval('cron.runid_seq', coalesce(max(runid), 0) + 1, false) from cron.job_run_details;
+ update cron.job set username = 'postgres' where username = 'supabase_admin';
+ commit;
+EOF
+ )
+
+ run_sql -c "$RECREATE_PG_CRON_QUERY"
+ fi
}
function complete_pg_upgrade {
[parent: 523ff222c682]