Skip to content

Common Failures And Recovery

FailureFirst response
unsupported typestop, fix type mapping, rerun
data_only trigger-control preflight failsstop before cutover, grant the required trigger-control privilege or switch away from data_only
FK creation failsinspect orphan data or use before_fk hooks
missing extensioninstall the extension or change the mapping
interrupted long runrerun with the same config if resume = true
broken semantic object after migrationrecreate it with hooks or separate DDL
  • If you plan to resume, do not change the config shape casually between runs.
  • If the target is disposable, recreate-fast may be simpler than cleaning up partial state.
  • If the target is not disposable, prefer durable tables and checkpoints over pure load speed.
  • If pgferry reports something instead of migrating it, do not assume it is safe to ignore for production.
  • data_only preflights ALTER TABLE ... DISABLE TRIGGER ALL in rollback-only transactions before COPY starts. If that check fails, no data was copied and the probe transaction was rolled back.
  • If a later data_only failure says pgferry attempted to restore trigger state, inspect the named target table and verify triggers are enabled before retrying.
  • On restricted or managed PostgreSQL roles, prefer a rehearsed schema_only plus alternate load workflow if the role cannot control triggers on the existing tables.