From 0518022e0a3519d42a7fcc3d98674cd93ae19787 Mon Sep 17 00:00:00 2001 From: Anastasia Lubennikova Date: Mon, 26 Feb 2024 15:29:58 +0000 Subject: [PATCH] Handle case when public schema is not present during neon migrations --- compute_tools/src/spec.rs | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/compute_tools/src/spec.rs b/compute_tools/src/spec.rs index b515f9f408..6722218908 100644 --- a/compute_tools/src/spec.rs +++ b/compute_tools/src/spec.rs @@ -802,7 +802,21 @@ $$;"#, query = "ALTER SCHEMA neon_migration OWNER TO cloud_admin"; client.simple_query(query)?; - query = "REVOKE ALL ON SCHEMA neon_migration FROM PUBLIC"; + // handle the case when public schema is not present + query = " + DO $$\n\ + BEGIN\n\ + IF EXISTS(\n\ + SELECT nspname\n\ + FROM pg_catalog.pg_namespace\n\ + WHERE nspname = 'public'\n\ + )\n\ + THEN\n\ + REVOKE ALL ON SCHEMA neon_migration FROM PUBLIC + END IF;\n\ + END\n + $$;"; + client.simple_query(query)?; query = "SELECT id FROM neon_migration.migration_id";