Skip to content
Databasezy

Move your database in without stopping it

Point us at a connection string or a dump file. We check it, copy it into your new instance, verify the copy and keep it in step until you switch.

  • Your source keeps running

    Your app keeps using the old database while we copy and verify. Nothing switches until you change the connection string.

  • A copy only reads

    We read the source with its own dump tools and write nothing back. Continuous sync is opt-in and tells you what it adds.

  • Credentials do not linger

    Source credentials are kept only as a Secret in the cell that runs the copy. The Secret is deleted when the migration finishes, or after 24 hours at the latest. Our control plane does not store them.

Six steps, every time

The same pipeline runs for every source. Steps that need you, like the switch itself, wait for you.

  1. Step 1: Preflight

    Connects, detects the engine and version, estimates size and duration, and lists anything we cannot carry over.

  2. Step 2: Copy

    Runs the engine's own dump and restore tools inside your target's cell, with live progress per table or collection.

  3. Step 3: Verify

    Compares row counts, sampled checksums, schema, sequences, indexes and extensions. Mismatches are listed, not hidden.

  4. Step 4: Sync

    Optional for Postgres and MySQL: replication keeps the copy current while your app still writes to the source.

  5. Step 5: Cut over

    You point your app at the new connection string. With sync running, the switch takes seconds.

  6. Step 6: Report

    Durations, sizes, verification results and skipped objects, saved to the audit log and emailed to you.

Pick where you are moving from

9 sources have a guided preset today. The rest use the same pipeline and get their guided steps as the rollout continues.

PostgreSQL platforms (8)

MySQL platforms (1)

Redis and key-value (3)

Document databases (1)

SQLite and edge (2)

Multi-engine clouds (8)

Or do it from the terminal

The zb CLI runs the same pipeline. With --from local it runs the engine's own tools on your machine and streams the dump to us, so nothing needs an open port.

From a provider (detected from the URL)
zb migrate --from postgres://user:[email protected]/db --to inst_abc
From a file, into a new instance
zb migrate --from ./app.sqlite --engine libsql --create
From a server on your machine
zb migrate --from local --engine postgres --db myapp --to inst_abc
Watch, then cut over
zb migrate status mig_123
zb migrate cutover mig_123

Full flags and output are in the zb migrate reference.

Questions

Does the migration change my source database?

A copy only reads. Continuous sync is different: it needs replication enabled on the source and adds a publication or replication user there. The guide lists exactly what is added and how to remove it.

What happens to the credentials I give you?

Source credentials are kept only as a Secret in the cell that runs the copy. The Secret is deleted when the migration finishes, or after 24 hours at the latest. Our control plane does not store them.

How much downtime should I plan for?

With continuous sync, seconds: the time to change your app's connection string. Without it, the time for one copy and verify. The preflight gives you an estimate before anything runs.

Which plans include continuous sync?

Continuous sync for Postgres and MySQL is part of the Solo plan and above, and arrives in rollout phase 2.

What if verification finds a difference?

The result lists each table or collection that does not match. Nothing is switched for you: you decide whether to re-run the copy, fix the source, or carry on.

Can I move a database onto secure hosting this way?

Yes, once instance-to-instance copies ship (coming soon). They cover engine upgrades, region moves and moving a database from shared to secure hosting, which needs a signed BAA for your organization.

Bring your database over

Start with a preflight. Before any data is copied, it tells you what will move, how big the target should be and how long the copy takes.