diff --git a/db/views/R__z_postgrest_ems_anon_grants.sql b/db/views/R__z_postgrest_ems_anon_grants.sql index 907f376..794847a 100644 --- a/db/views/R__z_postgrest_ems_anon_grants.sql +++ b/db/views/R__z_postgrest_ems_anon_grants.sql @@ -1,4 +1,28 @@ -- PostgREST ems_anon: SELECT na views (repeatable – po R__vw_* ve stejném Flyway běhu). +-- +-- Po importu DB dumpu bez cluster rolí často chybí samotná role; V009 pak na cílovém +-- clusteru neběžela. Tento blok je idempotentní a při změně souboru znovu spáruje granty. + +DO $$ BEGIN + IF NOT EXISTS (SELECT FROM pg_roles WHERE rolname = 'ems_anon') THEN + CREATE ROLE ems_anon NOLOGIN; + END IF; +END $$; + +GRANT USAGE ON SCHEMA ems TO ems_anon; + +-- Tabulky (stejné jako V009 + V020; idempotentní – bezpečné po importu DB bez rolí) +GRANT SELECT ON ems.market_interval_price TO ems_anon; +GRANT SELECT ON ems.planning_run TO ems_anon; +GRANT SELECT ON ems.planning_interval TO ems_anon; +GRANT SELECT ON ems.forecast_pv_interval TO ems_anon; +GRANT SELECT ON ems.forecast_pv_run TO ems_anon; +GRANT SELECT ON ems.operating_mode_def TO ems_anon; +GRANT SELECT ON ems.site_operating_mode TO ems_anon; +GRANT SELECT ON ems.site_operating_mode_log TO ems_anon; +GRANT SELECT ON ems.ev_session TO ems_anon; +GRANT SELECT ON ems.asset_vehicle TO ems_anon; +GRANT SELECT ON ems.ev_arrival_stats TO ems_anon; GRANT SELECT ON ems.vw_site_status TO ems_anon; GRANT SELECT ON ems.vw_site_effective_price TO ems_anon;