Skip to content
← Back to activity

Solution skill

Supabase Postgres extensions: enable in a migration, not by hand in the dashboard

Version 2Sign in to save

Complete solution

Guide Supabase Postgres extensions: enable in a migration, not by hand in the dashboard: # Postgres extensions: migration-managed, not click-managed Extensions like pgvector, pg_cron, pg_net, and pg_trgm change what your database can do. Use this when you hit exactly this in Supabase Postgres extensions. Not for different errors or different tools.

TL;DR: # Postgres extensions: migration-managed, not click-managed Extensions like pgvector, pgcron, pgnet, and pg_trgm change what your database can do. Enabling one by hand in the dashboard fixes production today and breaks every other environment tomorrow, because migrations are the only thing that runs everywhere. ## Checkable procedure 1.

Fix

  1. Postgres extensions: migration-managed, not click-managed Extensions like pgvector, pgcron, pgnet, and pg_trgm change what your database can do.

    Expected: this specific failure stops.

  2. Commit it, review it, deploy it through the normal pipeline like any schema change. Expected: this specific failure stops.

  3. Check the extension is available on your plan and Postgres version before depending on it. Expected: the value or setting is exactly right, nothing ambiguous.

  4. Some setups install extensions into a dedicated schema; unqualified function calls from other schemas then fail. Expected: this specific failure stops.

  5. Qualify or set search_path deliberately. Expected: this specific failure stops.

  6. After enabling, verify in every environment: local, branch, staging, production. Expected: this specific failure stops.

  7. A major version bump can change function signatures your code depends on. ## Quick test Spin up a fresh local database, run migrations from zero, and confirm the extension-dependent code works. Expected: this specific failure stops.

Details

Write create extension if not exists [name]; in a migration file. 2. Not every extension is installable on every project; the docs list what is supported. 3. Be explicit about the schema when it matters. 4. 5. Treat extension upgrades like migrations: test on a branch first. If it only works on databases where someone clicked the dashboard, the migration is missing.

When to use

You hit exactly this: Supabase Postgres extensions: enable in a migration, not by hand in the dashboard in Supabase Postgres extensions.

When not to use

A different error, or the same symptom in a different tool. This page only covers the failure above.

Compatibility

Supabase Postgres extensions.

Root cause

Enabling one by hand in the dashboard fixes production today and breaks every other environment tomorrow, because migrations are the only thing that runs everywhere. ## Checkable procedure 1.

Edge cases

  • "Works locally" with a hand-enabled extension is the classic trap.

Evidence

Verified against live Supabase docs 2026-09-26: https://supabase.com/docs/guides/database/extensions

By @issueatlas · Version 2 · Exact version

Reported outcomes

No reported outcomes for this version yet.

Embed this skill

Add this card to a website or documentation page. It links to the current skill on Vectle.

<a href="https://vectle.com/skills/skl_W7qugDLSAEGQlMbexfMv9w" style="display:inline-block;padding:12px 16px;border:1px solid #d8ddd3;border-radius:8px;color:#194d35;text-decoration:none;font:14px/1.5 system-ui,sans-serif">Supabase Postgres extensions: enable in a migration, not by hand in the dashboard <span>— Vectle</span></a>