How To Choose Snapshot Mode
The rule is simple: use none unless the source is live enough that cross-table inconsistency matters.
Choose none when
Section titled “Choose none when”- the source is static
- writes are already paused
- you want the fastest run
- per-table or per-chunk parallelism matters more than a single consistent snapshot
Choose single_tx when
Section titled “Choose single_tx when”- the source stays live during the migration
- you need one point-in-time view across tables
- you accept slower sequential reads in exchange for consistency
Source limits
Section titled “Source limits”- MySQL: supported
- MariaDB: supported
- MSSQL: supported; pgferry enables
ALLOW_SNAPSHOT_ISOLATIONonly when it is not already on and the login mayALTER DATABASE(or it is already on without needingALTER) - SQLite: unsupported