PostgreSQL refuses CREATE OR REPLACE FUNCTION worm_audit_purge when its owner has revoked its own EXECUTE, which is the CNPG shape: the runtime role owns the schema and worm-audit:6 revokes its EXECUTE. Website-Backend#260 hit this in ChangelogDefaultRolePostgresIntegrationTest.
worm-audit:13 now grants EXECUTE back to the migrating role only when it is missing, replaces the function, and revokes it again in the same transaction. No change for owners that keep EXECUTE. Verified by WB's CNPG-shaped changelog test, and ./mvnw verify passes here.
PostgreSQL refuses `CREATE OR REPLACE FUNCTION worm_audit_purge` when its owner has revoked its own EXECUTE, which is the CNPG shape: the runtime role owns the schema and `worm-audit:6` revokes its EXECUTE. Website-Backend#260 hit this in `ChangelogDefaultRolePostgresIntegrationTest`.
`worm-audit:13` now grants EXECUTE back to the migrating role only when it is missing, replaces the function, and revokes it again in the same transaction. No change for owners that keep EXECUTE. Verified by WB's CNPG-shaped changelog test, and `./mvnw verify` passes here.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
PostgreSQL refuses
CREATE OR REPLACE FUNCTION worm_audit_purgewhen its owner has revoked its own EXECUTE, which is the CNPG shape: the runtime role owns the schema andworm-audit:6revokes its EXECUTE. Website-Backend#260 hit this inChangelogDefaultRolePostgresIntegrationTest.worm-audit:13now grants EXECUTE back to the migrating role only when it is missing, replaces the function, and revokes it again in the same transaction. No change for owners that keep EXECUTE. Verified by WB's CNPG-shaped changelog test, and./mvnw verifypasses here.🤖 Generated with Claude Code