Script to migrate Mysql data and schema to Supabase
What this project does:
--no-ssl-cert-verification
to pgloader to not fail with X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN
quote identifiers
to not make all table names lowercasepublic
in PostgresBecause Planetscale doesn't let you fetch more than 100000 rows at a time, throwing the error Row count exceeded 100000
Download this repository locally and cd inside it
Dump your Planetscale database to a folder locally with
pscale database --org org dump database branch --output ./dump
Run a local Mysql database seeded with your dump with. Wait until all sql files are loaded and keep the process running in the background for the next step.
# must be inside this repository folder
docker compose up
If for some reason you need to recreate the Mysql database, you can do so with
docker compose down -v
, This will recreate the database with the dump
Run the migration with this code. This runs the following file
npx migrate-planetscale-to-supabase
After completing the migration run
datasource db {
+ provider = "postgresql"
- provider = "mysql"
}
And pull the changes made by the migration
prisma db pull
Then check that your current code compiles and runs as expected
You can create a different Supabase project for each branch. Supabase has alpha branching support, but i would advise against using it now as it currently depends on a Github App integration.