import Layout from '~/layouts/DefaultGuideLayout'
export const meta = { id: 'heroku', title: 'Migrate from Heroku to Supabase', description: 'Migrate your Heroku Postgres database to Supabase.', sidebar_label: 'Heroku', video: 'https://www.youtube.com/v/xsRhPMphtZ4', }
Supabase is one of the best free alternatives to Heroku Postgres. This guide shows how to migrate your Heroku Postgres database to Supabase. This migration requires the pg_dump and psql CLI tools, which are installed automatically as part of the complete PostgreSQL installation package.
Alternatively, use the Heroku to Supabase migration tool to migrate in just a few clicks.
- Log in to your Heroku account and select the project you want to migrate.
- Click Resources in the menu and select your Heroku Postgres database.
- Click Settings in the menu.
- Click View Credentials and save the following information:
- Host (
$HEROKU_HOST
) - Database (
$HEROKU_DATABASE
) - User (
$HEROKU_USER
) - Password (
$HEROKU_PASSWORD
)
- Host (
- If you're new to Supabase, create a project.
- Go to the Database settings for your project in the Supabase Dashboard.
- Under Connection Info, note your Host (
$SUPABASE_HOST
).
Use pg_dump
with your Heroku credentials to export your Heroku database to a file (e.g., heroku_dump.sql
).
pg_dump --clean --if-exists --quote-all-identifiers \
-h $HEROKU_HOST -U $HEROKU_USER -d $HEROKU_DATABASE \
--no-owner --no-privileges > heroku_dump.sql
Use psql
to import the Heroku database file to your Supabase project.
psql -h $SUPABASE_HOST -U postgres -f heroku_dump.sql
- To only migrate a single database schema, add the
--schema=PATTERN
parameter to yourpg_dump
command. - To exclude a schema:
--exclude-schema=PATTERN
. - To only migrate a single table:
--table=PATTERN
. - To exclude a table:
--exclude-table=PATTERN
.
Run pg_dump --help
for a full list of options.
export const Page = ({ children }) =>
export default Page