Skip to main content
Neon Postgres Docs
current

Search documentation

Type to search this documentation.

On this pageOverview

Migrate data from another Neon project

This guide describes how to migrate a database from one Neon project to another by piping output from pg_dump straight into pg_restore (pg_dump ... pg_restore ...). That runs the dump and restore in o...

This guide describes how to migrate a database from one Neon project to another by piping output from pg_dump straight into pg_restore (pg_dump ... | pg_restore ...). That runs the dump and restore in one step without writing an intermediate dump file on disk.

  • Upgrading the Postgres version: When upgrading to a new version of Postgres, always test thoroughly before migrating your production systems or applications.
  • Piping considerations: Piping simplifies the operation, but for large or complex datasets, we highly recommend a separate dump and restore. See Migrate data from Postgres with pg_dump and pg_restore.

To import your data from another Neon project:

  1. Create a new project with the desired region or Postgres version. See Create a project for instructions.

  2. Create a database with the desired name in your new Neon project. See Create a database for instructions.

  3. Retrieve the connection strings for the new and existing Neon databases.

    You can find the connection details for your database by clicking the Connect button in the Console nav. Connection strings have this format:

    Bash
    postgresql://[user]:[password]@[neon_hostname]/[dbname]
  4. Prepare your command to pipe data from one Neon project to the other. For the pg_dump command, specify connection details for the source database. For the pg_restore command, specify connection details for the destination database. The command should have the following format:

    Bash
    pg_dump -Fc -v -d postgresql://[user]:[password]@[source_neon_hostname]/[dbname] | pg_restore -v -d postgresql://[user]:[password]@[destination_neon_hostname]/[dbname]

    With actual source and destination connection details, your command will appear similar to this:

    Bash
    pg_dump -Fc -v -d postgresql://alex:AbC123dEf@ep-cool-darkness-123456.us-east-2.aws.neon.tech/my_source_db?sslmode=require&channel_binding=require | pg_restore -v -d postgresql://alex:AbC123dEf@square-shadow-654321.us-east-2.aws.neon.tech/my_destination_db?sslmode=require&channel_binding=require

    The command includes these arguments:

    • -Fc: Sends the output to a custom-format archive suitable for input into pg_restore.
    • -v: Runs commands in verbose mode, allowing you to monitor what happens during the operation.
    • -d: Specifies the database name or connection string.
  5. Run the command from your terminal or command window.

  6. Run some test queries on the target database to ensure everything imported correctly.

  7. Switch the connection string in your app to point to your new Neon database.

  8. If you no longer need the old Neon project, you can remove it. See Delete a project for instructions.

Join our Discord Server to ask questions or see what others are doing with Neon. For paid plan support options, see Support.

Suggest an edit

Propose a replacement for this page. The site team reviews it before applying any changes.

Export
Documentation menu