Migrate between Postgres databases
A CLI tool for migrating data from one PostgreSQL database to another.
[!NOTE]
This project is experimental.
There may be bugs, and the API is subject to change. While we cannot provide professional support for experimental projects, we welcome your feedback.
Usage
npx @neondatabase/pg-import@latest --silent false --accept-all false --source="pg-string" --destination="pg-string"
Flags and Options
-
--source <source>
: The connection string for the source PostgreSQL database. This is optional.
- Example:
--source "postgres://user:password@localhost:5432/source_db"
-
--destination <destination>
: The connection string for the destination PostgreSQL database. This is optional.
- Example:
--destination "postgres://user:password@localhost:5432/destination_db"
-
--silent
: Suppresses console output if set to true
. The default value is false
.
-
--accept-all
: Automatically accepts all prompts if set to true
. The default value is false
.
- Example:
--accept-all true
-
--backup-file-path
: Specifies the path and filename for the backup file. If not set, the default value is dump_restore_{randomly_generated_string}.bak.
- Example:
--backup-file-path "../Downloads/example.bak"
When Migrating to Neon
-
Make sure your Neon plan supports your database size. The Neon Free Tier offers 0.5 GiB of storage. For larger data sizes, upgrade to the Launch or Scale plan. See Neon plans.
-
If you are on the Neon Launch or Scale plan, you can optimize for the migration by configuring a larger compute size or enabling autoscaling for additional CPU and RAM. See How to size your compute.
-
This utility uses pg_dump
and pg_restore
. A generated dump file containing any of the following statements will produce a warning or error when data is restored to Neon:
ALTER OWNER
statementsCREATE EVENT TRIGGER
statements- Any statement requiring the PostgreSQL superuser privilege or not held by the role running the migration
See Import from Postgres for possible workarounds.
Authors
This library is created by Neon with contributions from:
Contributing
We love contributions! Here's how you can contribute:
- Open an issue if you believe you've encountered a bug.
- Make a pull request to add new features, make improvements, or fix bugs.
Contributors