One pipeline, five stages
The literal order pgloader executes in — the report at the end times every one of them
- 01
Fetch catalog
Query the source's live catalogs, or read a file header, into an in-memory schema.
- 02
Prepare target
Translate the catalog into PostgreSQL's own, applying casting rules as it goes.
- 03
Parallel COPY
Reader and writer threads per table, batching over the COPY protocol.
- 04
Parallel indexes
Every index builds once its table's data has landed — primary keys get their own pass.
- 05
Complete schema
Constraints, comments, and foreign keys install last, as defined in the source.
Same .load file syntax and command-line flags as v3 —
existing migration scripts keep working. v4 also accepts plain JDBC
connection strings (jdbc:mysql://, jdbc:sqlserver://,
etc.) with driver-specific parameters passed through unchanged.
$ curl -L -o pgloader.jar https://github.com/dimitri/pgloader/releases/download/v4-dev/pgloader.jar
$ java -jar pgloader.jar mysql://user@host/dbname postgresql:///dbname