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.