Connect Supabase

Which Supabase endpoint a desktop tool can actually reach, and what the failures look like when it cannot.

Last updated August 19, 2026

Supabase is a standard PostgreSQL database with auth, realtime, storage and generated APIs built around it, so DBConvert connects to it as it would to any Postgres server. The catch is not the protocol - it is that Supabase offers three different endpoints and the one the dashboard shows first is the one least likely to work from a desktop machine. For the generic workflow, see Source and destination connections.

Which endpoint to use

Open Connect in the top bar of your project and pick the Direct connection string tab. It offers three connection methods, and they are not interchangeable:

MethodHostPortUsernameNetwork
Direct connectiondb.<ref>.supabase.co5432postgresIPv6 by default; IPv4 is a paid add-on
Transaction pooleraws-1-<region>.pooler.supabase.com6543postgres.<ref>IPv6 by default; IPv4 is a paid add-on
Session pooleraws-1-<region>.pooler.supabase.com5432postgres.<ref>IPv4 proxied at no charge

Supabase Connect dialog with Session pooler selected, showing host aws-1-eu-north-1.pooler.supabase.com on port 5432

Supabase spells the rule out on that panel: "Session pooler connections are IPv4 proxied for free. Use direct connection if connecting via an IPv6 network."

Use the session pooler unless your network has IPv6. All three endpoints resolve to IPv6 by default, and only the session pooler is proxied over IPv4 for free - Supabase sells a dedicated IPv4 address as an add-on for the other two. Most Windows desktops on an office or home connection have no IPv6 route, which makes the session pooler the only endpoint that answers.

Note the username. The pooler identifies your project from the user name, so it must be postgres.<ref>, where <ref> is the project reference from the host name (also shown as Project ID in Project Settings). Plain postgres only works on the direct host.

Get the database password

Supabase shows the database password once, when the project is created, and never again. From the docs page in the dashboard: "The database password isn't viewable after creation. Resetting it will break any existing connections."

If you do not have it, reset it - the button sits in the Connect dialog next to the connection string, and again under Database → Settings → Database password. Two things to know before you click:

  • The reset invalidates the old password, so anything already connected with it stops working. On a project that is serving an application, plan for that.
  • The new password is displayed only until you reload the page - the dialog labels it "New password shown until refresh". Copy it immediately, or you will be resetting it again.

Connection fields

For the session pooler, fill in the DBConvert connection form like this:

FieldValue
Hostnameaws-1-<region>.pooler.supabase.com - copy it from the Connect dialog
Port5432
Usernamepostgres.<ref> - with the project reference, not plain postgres
PasswordThe database password, not an API key or a service role key
Databasepostgres
Schemapublic

Click Test connection before going further. A correct session pooler setup reports Connection successful.

DBConvert source connection filled in with the Supabase session pooler host, port 5432 and the postgres.ref username, showing Connection successful

The two errors you will hit

Connection timed out

could not connect to server: Connection timed out (0x0000274C/10060)
Is the server running on host "db.<ref>.supabase.co"
(2a05:...) and accepting TCP/IP connections on port 5432?

This is the direct host on a network without IPv6. The address in brackets is the giveaway: it is an IPv6 address, because that is the only kind the direct host publishes. Nothing is wrong with the server, the firewall or the password - there is simply no route to that address from your machine, so the connection attempt runs to timeout.

DBConvert showing Connection timed out 10060 against the Supabase direct host, with an IPv6 address in the message

Switch to the session pooler host and remember to change the username as well.

No tenant identifier provided

FATAL: (ENOIDENTIFIER) no tenant identifier provided
(external_id or sni_hostname required)

This is the pooler host with the username left as plain postgres. The pooler works out which project you mean from the user name, and without the .<ref> suffix it has nothing to go on. Change the username to postgres.<ref>; the host, port and password stay as they are.

DBConvert showing the ENOIDENTIFIER no tenant identifier provided error against the Supabase pooler host with a plain postgres username

It is the natural mistake to make, because the Direct connection tab shows the username as plain postgres and only the pooler tabs show the longer form.

Connection limits on small projects

Under Database → Settings → Connection pooling, a project on the smallest compute size (Nano, which is what the Free plan gives you) defaults to a pool size of 15 connections, with max client connections fixed at 200. Both scale with compute size; the pool size is editable, the client limit is not.

Supabase Database Settings page showing the connection pool size of 15, max client connections of 200 and the SSL configuration panel

This matters because DBConvert can process large tables in parallel, opening more than one connection at a time. On a Nano project the pool is shallow, so if a large job behaves oddly, lower the parallelism before looking anywhere else.

SSL

Under Database → Settings → SSL configuration, Enforce SSL on incoming connections is off by default, so a plain connection is accepted. For anything holding real data, turn it on and download the certificate from the same panel - see Secure connections for where the certificate goes.

Backups on the Free plan

Worth knowing before you rely on the platform to keep a copy for you: under Database → Backups, a Free project says "Free Plan does not include project backups". Paid plans get 7, 14 or 30 days of daily backups depending on tier, and those restore into a project through the dashboard rather than downloading to you.

Supabase Database Backups page on the Free plan stating that the Free Plan does not include project backups

Copying the data into a database you run yourself is the part DBConvert covers - see Supabase migration and export tools.

Coming from Lovable Cloud

Export your data before you remove Lovable Cloud.

Removing it deletes the instance permanently - Lovable's own documentation says to export first, and there is no undo.

Lovable Cloud is built on Supabase, but it is a managed layer on top: it does not hand external tools a Postgres connection string, so there is nothing for DBConvert to connect to. Move the project onto a Supabase project of your own first, following Lovable's documented path. From that point it is an ordinary Postgres database and everything on this page applies - including the export to MySQL, SQL Server or Oracle that neither Lovable nor Supabase offers.

What was tested

Measured against a live Supabase project in August 2026 - Free plan, region eu-north-1, compute size Nano - using DBConvert for MySQL & PostgreSQL 4.4.2. Host, port and password were identical in all three runs; only the endpoint and username changed:

HostUsernameResult
db.<ref>.supabase.co:5432postgresConnection timed out (10060), IPv6 address in the message
aws-1-<region>.pooler.supabase.com:5432postgresFATAL: (ENOIDENTIFIER) no tenant identifier provided
aws-1-<region>.pooler.supabase.com:5432postgres.<ref>Connection successful

The transaction pooler on port 6543 was not tested. It is IPv6 by default like the direct host, so the same timeout is expected on an IPv4-only network.