How to Upgrade Supabase on Localhost during Local Development

First run supabase services to see what components on local are out of sync with your remote:

>supabase services


        SERVICE IMAGE      │        LOCAL         │  LINKED
  ─────────────────────────┼──────────────────────┼────────────
    supabase/postgres      │ 15.1.1.22            │ 15.1.1.25
    supabase/gotrue        │ v2.143.1             │ v2.144.0
    postgrest/postgrest    │ v12.0.2              │ v12.0.2
    supabase/realtime      │ v2.25.50             │ -
    supabase/storage-api   │ v0.48.2              │ v0.48.2
    supabase/edge-runtime  │ v1.33.5              │ -
    supabase/studio        │ 20240101-8e4a094     │ -
    supabase/postgres-meta │ v0.75.0              │ -
    supabase/logflare      │ 1.4.0                │ -
    bitnami/pgbouncer      │ 1.20.1-debian-11-r39 │ -
    darthsim/imgproxy      │ v3.8.0               │ -

Run supabase link to sync your local image versions with the linked project.

Then run supabase link.

Run supabase services again, and your local and linked versions should be identical.

>supabase services


        SERVICE IMAGE      │        LOCAL         │  LINKED
  ─────────────────────────┼──────────────────────┼────────────
    supabase/postgres      │ 15.1.1.25            │ 15.1.1.25
    supabase/gotrue        │ v2.144.0             │ v2.144.0
    postgrest/postgrest    │ v12.0.2              │ v12.0.2
    supabase/realtime      │ v2.25.50             │ -
    supabase/storage-api   │ v0.48.2              │ v0.48.2
    supabase/edge-runtime  │ v1.33.5              │ -
    supabase/studio        │ 20240101-8e4a094     │ -
    supabase/postgres-meta │ v0.75.0              │ -
    supabase/logflare      │ 1.4.0                │ -
    bitnami/pgbouncer      │ 1.20.1-debian-11-r39 │ -
    darthsim/imgproxy      │ v3.8.0               │ -

Now you will need to restart your postgres via:

supabase stop
supabase start

In my case, this shows how the new postgres container was downloaded:

>supabase start
: Pulling from supabase/postgres
17d0386c2fff: Pull complete
695ca30364d0: Pull complete
...
Status: Downloaded newer image for public.ecr.aws/supabase/postgres: 15.1.1.25
v2.144.0: Pulling from supabase/gotrue
3c854c8cbf46: Already exists
...
Digest: sha256:5e1251b70199f5f2324f8e1767b2b75201a4038af3f26ca8249dc269f96c7dce

Status: Downloaded newer image for public.ecr.aws/supabase/gotrue:v2.144.0

Started supabase local development setup.

Finally check your postgresql extensions and upgrade.

SELECT * FROM pg_available_extensions 
WHERE installed_version is not null
    AND default_version != installed_version
;

In my case this returned:

  name    | default_version | installed_version |           comment
----------+-----------------+-------------------+------------------------------
pg_cron   | 1.6             | 1.4-1             | Job scheduler for PostgreSQL
pg_graphql| 1.5.1           | 1.4.2             | pg_graphql: GraphQL support

Upgrade pg_cron:

ALTER EXTENSION pg_cron UPDATE TO '1.6';

However the same did not work for pg_graphql because the upgrade path was not available.


Comments

Add Comment

Name

Email

Comment

Are you human? + six = 15