Movatterモバイル変換


[0]ホーム

URL:


Skip to main content

Import data from an existing MySQL database

This guide provides step-by-step instructions for importing data from an existing MySQL database into Prisma Postgres.

You can accomplish this migration in four steps:

  1. Create a new Prisma Postgres database.
  2. Connect directly to a Prisma Postgres instance using adirect connection.
  3. Migrate your MySQL data to Prisma Postgres usingpgloader.
  4. Configure your Prisma project for Prisma Postgres.

Prerequisites

  • The connection URL to your existing MySQL database.
  • A account.
  • Node.js 18+ installed.
  • pgloader installed.

We recommend attempting this migration in a separate git development branch.

1. Create a new Prisma Postgres database

Follow these steps to create a new Prisma Postgres database:

  1. Log in to and open the Console.
  2. In aworkspace of your choice, click theNew project button.
  3. Type a name for your project in theName field, e.g.hello-ppg.
  4. In thePrisma Postgres section, click theGet started button.
  5. In theRegion dropdown, select the region that's closest to your current location, e.g.US East (N. Virginia).
  6. Click theCreate project button.

Once your database was provisioned, find your direct Prisma Postgres connection string:

  1. Navigate to your active Prisma Postgres instance.
  2. Click theAPI Keys tab in the project's sidenav.
  3. Click theCreate API key button.
  4. In the popup, provide aName for the API key and clickCreate.
  5. Copy the connection string starting withpostgres://, this is your direct connection string.

Save the connection string, you'll need it in the next step.

2. Connect directly to a Prisma Postgres instance

In this step, you'll use adirect connection to connect to your Prisma Postgres instance.

You'll need the Prisma Postgres connection URL fromstep 1:

prisma+postgres://accelerate.prisma-data.net/?api_key=ey...

3. Migrate your MySQL data to Prisma Postgres using pgloader

Now that you have an active connection to your Prisma Postgres instance, you'll usepgloader to export data from your MySQL database to Prisma Postgres.

Open a separate terminal window and create aconfig.load file:

touch config.load

Open theconfig.load file in your preferred text editor and copy-paste the following configuration:

config.load
LOAD DATABASE
FROM mysql://username:password@host:PORT/database_name
INTO postgres://__USER__:__PASSWORD__@postgres.prisma-data.net:5432/?sslmode=require

WITH quote identifiers, -- preserve table/column name case by quoting them
include drop,
create tables,
create indexes,
reset sequences

ALTER SCHEMA 'database_name' RENAME TO 'public';

Make sure to update the following details in theconfig.load file:

  • FROM url (MySQL database URL):
    • Replaceusername,password,host,PORT, anddatabase_name with the actual connection details for your MySQL database.
    • Ensure that your connection string includesuseSSL=true if SSL is required, for example:mysql://username:password@host:PORT/database_name?useSSL=true. Note that when using PlanetScale, appendingsslaccept=strict will not work.
  • INTO url (Postgres database URL):
    • Update this with your direct connection string from above, replacing the__USER__ and__PASSWORD__ placeholders.
  • Update thedatabase_name inALTER SCHEMA 'database_name' RENAME TO 'public'; to exactly match thedatabase_name in your MySQL connection string.

After saving the configuration file with your updated credentials, in the same terminal window, execute the following command:

pgloader config.load

You should see a log similar to this, which confirms the successful migration of your data:

LOG report summary reset
table name errors rows bytes total time
------------------------- --------- --------- --------- --------------
fetch meta data 0 9 2.546s
Create Schemas 0 0 0.325s
Create SQL Types 0 0 0.635s
Create tables 0 6 5.695s
Set Table OIDs 0 3 0.328s
------------------------- --------- --------- --------- --------------
public.post 0 8 0.5 kB 4.255s
public."user" 0 4 0.1 kB 2.775s
public._prisma_migrations 0 1 0.2 kB 4.278s
------------------------- --------- --------- --------- --------------
COPY Threads Completion 0 4 5.095s
Index Build Completion 0 5 9.601s
Create Indexes 0 5 4.116s
Reset Sequences 0 2 4.540s
Primary Keys 0 3 2.917s
Create Foreign Keys 0 1 1.121s
Create Triggers 0 0 0.651s
Install Comments 0 0 0.000s
------------------------- --------- --------- --------- --------------
Total import time ✓ 13 0.8 kB 28.042s

If you see output like this, it means your data has been successfully exported to your Prisma Postgres instance.

note

You also can usePrisma Studio and verify whether the migration was successful:

npx prisma studio

4. Configure your Prisma project for Prisma Postgres

After migrating your data, you need to set up your Prisma project to work with Prisma Postgres. The steps differ depending on whether you were already using Prisma ORM.

If youwere not previously using Prisma ORM

Initialize Prisma in your project by runningnpx prisma init in your project directory. This creates aprisma folder with aschema.prisma file and.env file (if not already present).

In the generated.env file, updateDATABASE_URL to match your Prisma Postgres connection string that you received instep 1:

.env
DATABASE_URL="prisma+postgres://accelerate.prisma-data.net/?api_key=__API_KEY__"

Introspect your newly migrated database by running:

npx prisma db pull

This command updates yourschema.prisma file with models representing your migrated tables, so you can start usingPrisma Client to query your data orPrisma Migrate to manage future changes.

Congratulations! You've successfully migrated your MySQL database to Prisma Postgres and configured your Prisma project. Your migration tutorial is now complete.

note

For a comprehensive guide on getting started with Prisma and Prisma Postgres, seestart from scratch with Prisma and Prisma Postgres.

If youwere already using Prisma ORM

In yourschema.prisma file, change theprovider in thedatasource block frommysql topostgresql:

schema.prisma
datasource db{
provider="mysql"
provider="postgres"
url=env("DATABASE_URL")
}

In the generated.env file, updateDATABASE_URL to match your new Prisma Postgres connection string that you received instep 1:

.env
DATABASE_URL="prisma+postgres://accelerate.prisma-data.net/?api_key=__API_KEY__"

Introspect your newly migrated Prisma Postgres database and generate Prisma Client:

npx prisma db pull

This command refreshes your Prisma models based on the new database schema.

If you were usingPrisma Migrate before:

  • Delete your existingmigrations folder in theprisma directory.
  • Baseline your database to begin creating new migrations.

Congratulations! You've successfully migrated your MySQL database to Prisma Postgres and configured your Prisma project. Your migration tutorial is now complete.

If you encounter any issues during the migration, please don't hesitate to reach out to us onDiscord or viaX.


[8]ページ先頭

©2009-2025 Movatter.jp