diff --git a/db/migration/V034__postgrest_ems_anon_membership.sql b/db/migration/V034__postgrest_ems_anon_membership.sql new file mode 100644 index 0000000..2d29c1d --- /dev/null +++ b/db/migration/V034__postgrest_ems_anon_membership.sql @@ -0,0 +1,12 @@ +-- PostgREST (PGRST_DB_ANON_ROLE) vyžaduje existující roli ems_anon a možnost SET ROLE. +-- Po pg_restore --no-acl / ručním spuštění jen GRANTů bez V009 může role na clusteru chybět. +-- Členství: uživatel z PGRST_DB_URI musí mít GRANT ems_anon TO (kromě superusera). +-- Flyway běží ve stejném compose jako PostgREST se stejným DB_USER → CURRENT_USER je správný cíl. + +DO $$ BEGIN + IF NOT EXISTS (SELECT FROM pg_roles WHERE rolname = 'ems_anon') THEN + CREATE ROLE ems_anon NOLOGIN; + END IF; +END $$; + +GRANT ems_anon TO CURRENT_USER;