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.
npx @neondatabase/pg-import@latest --silent false --accept-all false --source="pg-string" --destination="pg-string"
-
--source <source>
: The connection string for the source PostgreSQL database. This is optional.- Example:
--source "postgres://user:password@localhost:5432/source_db"
- Example:
-
--destination <destination>
: The connection string for the destination PostgreSQL database. This is optional.- Example:
--destination "postgres://user:password@localhost:5432/destination_db"
- Example:
-
--silent
: Suppresses console output if set totrue
. The default value isfalse
.- Example:
--silent true
- Example:
-
--accept-all
: Automatically accepts all prompts if set totrue
. The default value isfalse
.- Example:
--accept-all true
- Example:
-
--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"
- Example:
-
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
andpg_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.
This library is created by Neon with contributions from:
- Rishi Raj Jain (@rishi_raj_jain_)
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.