mirror of
https://github.com/supabase/supabase.git
synced 2026-06-08 02:25:04 +08:00
102 lines
5.1 KiB
Plaintext
102 lines
5.1 KiB
Plaintext
---
|
|
title: 'Migrate from Amazon RDS to Supabase'
|
|
description: 'Migrate your Amazon RDS MySQL or MS SQL database to Supabase.'
|
|
subtitle: 'Migrate your Amazon RDS MySQL or MS SQL database to Supabase.'
|
|
---
|
|
|
|
This guide aims to exhibit the process of transferring your Amazon RDS database from any of these engines Postgres, MySQL or MS SQL to Supabase's Postgres database. Although Amazon RDS is a favored managed database service provided by AWS, it may not suffice for all use cases. Supabase, on the other hand, provides an excellent free and open source option that encompasses all the necessary backend features to develop a product: a Postgres database, authentication, instant APIs, edge functions, real-time subscriptions, and storage.
|
|
|
|
Supabase's core is Postgres, enabling the use of row-level security and providing access to over 40 Postgres extensions. By migrating from Amazon RDS to Supabase, you can leverage Postgres to its fullest potential and acquire all the features you need to complete your project.
|
|
|
|
## Retrieve your Amazon RDS database credentials [#retrieve-rds-credentials]
|
|
|
|
1. Log in to your [Amazon RDS account](https://aws.amazon.com/rds/).
|
|
1. Select the region where your RDS database is located.
|
|
1. Navigate to the **Databases** tab.
|
|
1. Select the database that you want to migrate.
|
|
1. In the **Connectivity & Security** tab, note down the Endpoint and the port number.
|
|
1. In the **Configuration** tab, note down the Database name and the Username.
|
|
1. If you do not have the password, create a new one and note it down.
|
|
|
|

|
|
|
|
## Retrieve your Supabase host [#retrieve-supabase-host]
|
|
|
|
1. If you're new to Supabase, [create a project](https://database.new). Make a note of your password, you will need this later. If you forget it, you can [reset it here](/dashboard/project/_/database/settings).
|
|
1. On your project dashboard, click [Connect](/dashboard/project/_?showConnect=true&method=session)
|
|
1. Under the Session pooler, click on the View parameters under the connect string. Note your Host (`$SUPABASE_HOST`).
|
|
|
|

|
|
|
|
## Migrate the database
|
|
|
|
The fastest way to migrate your database is with the Supabase migration tool on
|
|
[Google Colab](https://colab.research.google.com/github/mansueli/Supa-Migrate/blob/main/Amazon_RDS_to_Supabase.ipynb).
|
|
|
|
Alternatively, you can use [pgloader](https://github.com/dimitri/pgloader), a flexible and powerful data migration tool that supports a wide range of source database engines, including MySQL and MS SQL, and migrates the data to a Postgres database. For databases using the Postgres engine, we recommend using the [`pg_dump`](https://www.postgresql.org/docs/current/app-pgdump.html) and [psql](https://www.postgresql.org/docs/current/app-psql.html) command line tools, which are included in a full Postgres installation.
|
|
|
|
<Tabs
|
|
scrollable
|
|
size="small"
|
|
type="underlined"
|
|
defaultActiveId="colab"
|
|
queryGroup="migrate-method"
|
|
>
|
|
<TabPanel id="colab" label="Migrate using Colab">
|
|
|
|
1. Select the Database Engine from the Source database in the dropdown
|
|
1. Set the environment variables (`HOST`, `USER`, `SOURCE_DB`,`PASSWORD`, `SUPABASE_URL`, and `SUPABASE_PASSWORD`) in the Colab notebook.
|
|
1. Run the first two steps in [the notebook](https://colab.research.google.com/github/mansueli/Supa-Migrate/blob/main/Amazon_RDS_to_Supabase.ipynb) in order. The first sets engine and installs the necessary files.
|
|
1. Run the third step to start the migration. This will take a few minutes.
|
|
|
|
</TabPanel>
|
|
<TabPanel id="MySQL" label="Migrate from MySQL with pgloader">
|
|
|
|
1. Install pgloader.
|
|
2. Create a configuration file (e.g., config.load).
|
|
|
|
For your destination, use your Supabase connection string with `Use connection pooling` enabled, and the mode set to `Session`. You can get the string from your [`Database Settings`](/dashboard/project/_/settings/general).
|
|
|
|
```sql
|
|
load database
|
|
from mysql://user:password@host/source_db
|
|
into postgres://postgres.xxxx:password@xxxx.pooler.supabase.com:5432/postgres
|
|
alter schema 'public' owner to 'postgres';
|
|
set wal_buffers = '64MB', max_wal_senders = 0, statement_timeout = 0, work_mem to '2GB';
|
|
```
|
|
|
|
3. Run the migration with pgloader
|
|
|
|
```bash
|
|
pgloader config.load
|
|
```
|
|
|
|
</TabPanel>
|
|
<TabPanel id="MS SQL" label="Migrate from MSSQL">
|
|
|
|
1. Install pgloader.
|
|
2. Create a configuration file (e.g., config.load).
|
|
|
|
```sql
|
|
LOAD DATABASE
|
|
FROM mssql://USER:PASSWORD@HOST/SOURCE_DB
|
|
INTO postgres://postgres.xxxx:password@xxxx.pooler.supabase.com:6543/postgres
|
|
ALTER SCHEMA 'public' OWNER TO 'postgres';
|
|
set wal_buffers = '64MB', max_wal_senders = 0, statement_timeout = 0, work_mem to '2GB';
|
|
```
|
|
|
|
3. Run the migration with pgloader
|
|
|
|
```bash
|
|
pgloader config.load
|
|
```
|
|
|
|
</TabPanel>
|
|
</Tabs>
|
|
|
|
<$Partial path="migration_warnings.mdx" />
|
|
|
|
## Enterprise
|
|
|
|
[Contact us](https://forms.supabase.com/enterprise) if you need more help migrating your project.
|