Skip to content

The Extension Installation Constraint

Managed cloud PostgreSQL services do not allow you to place files on the server filesystem. The standard PostgreSQL extension mechanism (CREATE EXTENSION) requires a .control file and a SQL file to exist in the server's extension directory — a path you cannot write to on any managed service.

Additionally, because pg_relay itself is deployed via direct SQL on managed services (not via CREATE EXTENSION), it does not appear in pg_extension. This means that CREATE EXTENSION pg_auto_mv would fail with a missing dependency error even if you somehow had filesystem access — PostgreSQL checks pg_extension to satisfy the requires = 'pg_relay' declaration in the control file.

pg_auto_mv is a pure SQL extension — it contains no compiled C code. The entire extension can be deployed by running its SQL file directly against the database. The result is functionally identical to CREATE EXTENSION pg_auto_mv: the same schema, types, tables, views, and functions are created, and the pg_relay action registrations are inserted.

CREATE EXTENSION Manual SQL deployment
Installation CREATE EXTENSION pg_auto_mv CREATE SCHEMA pgauto_mv + run sql/pg_auto_mv--1.0.sql then sql/pg_auto_mv--1.0--1.1.sql
Removal DROP EXTENSION pg_auto_mv DROP SCHEMA pgauto_mv CASCADE
Upgrade ALTER EXTENSION pg_auto_mv UPDATE Apply updated SQL file manually
Extension catalogue Appears in pg_extension Does not appear in pg_extension

Everything else — event-driven refresh, scheduled refresh, timing policy, multi-master replication support, the full management API — is identical.