supabase / supabase-js

An isomorphic Javascript client for Supabase. Query your Supabase database, subscribe to realtime events, upload and download files, browse typescript examples, invoke postgres functions via rpc, invoke supabase edge functions, query pgvector.
https://supabase.com
MIT License
2.86k stars 220 forks source link

Selecting a schema on createClient does not work #969

Open odarriba opened 3 months ago

odarriba commented 3 months ago

Bug report

Describe the bug

I am moving all contents from a Supabase server to another. I have exported the roles, schema and data, and inserted it again in the new server.

After that, I had to move the storage blobs from the bucket of the previous server to the new one, as indicated on this:

https://supabase.com/docs/guides/platform/migrating-and-upgrading-projects#migrate-storage-objects

But when I do, it fails on the step of obtaining the objects list from the previous DB. Inspecting the error returned I can see it fails because of this:

{
  code: '42P01',
  details: null,
  hint: null,
  message: 'relation "public.objects" does not exist'
}

and taking into account the script is selecting the schema storage for that oldSupabaseRestClient variable initialization, it does not make any sense.

I tried changing the name of the schema in the initialization in case it is just protecting storage but the error remains the same: always trying to access public.

To Reproduce

Have two instances and try to run the script on that docs page.

Expected behavior

Be able to get the list of files and continue with the migration

Screenshots

-

System information

Additional context

-

belle-chang commented 3 months ago

I have the same issue - please assist!

belle-chang commented 3 months ago

Figured out the problem, when accessing the schema, it needs to be:

const oldSupabaseRestClient = createClient(OLD_PROJECT_URL, OLD_PROJECT_SERVICE_KEY, {
    schema: 'storage',
})

@supabase team, can you update the docs on this?