pgloader vs DBConvert Streams
pgloader is an open-source command-line tool for one-shot data loads from MySQL, SQL Server, SQLite, CSV, and other sources into PostgreSQL.
DBConvert Streams is a database migration and CDC tool with a built-in IDE — it covers initial loads, ongoing CDC, and bidirectional moves, not just one-shot loads into Postgres.
Quick answer
Choose by job
Choose pgloader if
- Your target is always PostgreSQL and the migration is a one-shot cutover with no CDC after.
- Your source is something pgloader handles well — SQLite, DBF, IXF, fixed-width files, or Citus.
- You prefer a free OSS CLI tool with a small dependency footprint.
- You are comfortable writing a .load command file and reading stdout.
Choose DBConvert Streams if
- Ongoing CDC after the initial load is part of the requirement.
- Your target might be MySQL/MariaDB, files, or S3 — not only PostgreSQL.
- You want migration validation and run history inside a UI, not log parsing.
- A long-running load should resume from a checkpoint if interrupted.
At a glance
Side-by-side facts
Where pgloader wins
Get a Postgres loader for nothing
PostgreSQL License — no per-seat or per-row fees. Ships in many Linux package repositories, ready to apt-install.
Load gigabytes via COPY at speed
Uses PostgreSQL COPY for ingestion with parallel section handling. Hard to beat on raw throughput for a one-shot load.
Ingest SQLite, DBF, IXF, and fixed-width sources
Source format coverage DBConvert Streams does not match — useful when the migration is FROM a legacy or specialized format INTO Postgres.
Note — For migration and sync of SQLite, DBF, and IXF sources into engines beyond PostgreSQL, the broader DBConvert product line (DBConvert/DBSync and DBConvert Studio) handles it. Those are dedicated multi-engine migration tools, not Postgres-tuned COPY-based loaders.
See the DBConvert product familyRun a migration from a one-line command
A single .load command file or a one-line URL syntax. No daemon, no service, no UI to keep open.
Follow well-known recipes for PG-as-target
Widely used for MySQL → PostgreSQL, SQL Server → PostgreSQL, SQLite → PostgreSQL one-time cutovers. Community recipes for most stacks.
Where DBConvert Streams wins
Keep the target in sync after the load
pgloader exits when the data lands. DBConvert Streams continues with native log-based CDC for MySQL and PostgreSQL.
Write to MySQL, files, or S3 — not only PostgreSQL
PG → MySQL/MariaDB, MySQL ↔ MySQL, or DB ↔ files/S3 are all real directions. pgloader's target is always PostgreSQL.
Resume a long load instead of restarting it
Checkpointed initial-load state — an interrupted Load picks up from the last completed batch. pgloader restarts from scratch on any interruption.
Inspect data inside the same product that moves it
Browse schemas, run SQL, edit rows, inspect ER diagrams alongside the migration. pgloader has no UI — you read stdout and parse logs.
Validate the cutover with data, not just logs
Compare row counts and sample data between source and target. pgloader leaves validation to you.
See throughput and run history in a UI
Stream Monitor surfaces throughput, lag, and recent runs visually — no log grepping.
Workflow
Migrate to PostgreSQL and keep it in sync afterwards — not just dump and walk away
- 1Connect source and target databases in Data Explorer and inspect schemas side by side.
- 2Run Load mode for the initial migration with table mapping and filters (resumable from a checkpoint if interrupted).
- 3Open the Compare tab and validate row counts and sample data on the target.
- 4Switch to CDC mode to capture and apply ongoing source changes to the target.
- 5Monitor throughput, lag, and run history in Stream Monitor.
pgloader hands you a populated PostgreSQL target and exits. DBConvert Streams stays running and keeps the target in sync — with the IDE and validation alongside.
Also supported
The same workflow runs for other source/target combinations:
- PostgreSQL → MySQL/MariaDB (reverse direction — pgloader does not write to MySQL)
- MySQL/MariaDB → PostgreSQL (the pgloader staple, with ongoing CDC after the initial load)
- MySQL/MariaDB ↔ MySQL/MariaDB (homogeneous, outside pgloader scope)
- PostgreSQL ↔ PostgreSQL (homogeneous, with native logical replication)
- MySQL/PostgreSQL → files (CSV, JSONL, Parquet) — pgloader does not write to files
- MySQL/PostgreSQL → S3-compatible storage
- Files / S3 → MySQL or PostgreSQL
FAQ
Frequently asked questions
Is DBConvert Streams a pgloader replacement?
For one-shot Postgres loads, sometimes. For anything beyond that, yes.
- pgloader — Fast, free, one-way load INTO PostgreSQL. Exits when the load is done.
- DBConvert Streams — Load + ongoing CDC + Compare in one workflow, bidirectional, also writes to MySQL/MariaDB, files, and S3.
If the job is a one-shot cutover into PostgreSQL with no plans for CDC, pgloader is hard to beat on price and throughput. For anything ongoing, multi-target, or needing validation in a UI, use DBConvert Streams.
Can pgloader run CDC after the initial load?
No. pgloader is a one-shot loader. Once the data lands, the tool exits. For ongoing replication after the initial load, you need a separate CDC tool. DBConvert Streams covers the initial Load and ongoing log-based CDC in one workflow.
What happens if a long pgloader run is interrupted?
pgloader restarts from scratch — there is no checkpointed resume of an in-progress load. DBConvert Streams checkpoints initial-load progress and resumes from the last completed batch if the process is interrupted.
Does DBConvert Streams support all pgloader sources?
No. pgloader supports source formats — DBF, IXF, fixed-width files, SQLite, MS SQL Server, Redshift, Citus migrations — that DBConvert Streams does not cover. DBConvert Streams supports MySQL/MariaDB, PostgreSQL, files (CSV, JSONL, Parquet), and S3 as sources. For Oracle, SQL Server, Db2, or similar engines, see the broader DBConvert product line — DBConvert/DBSync or DBConvert Studio — covering 30+ engines and 400+ migration directions.
Is the target always PostgreSQL with pgloader?
Yes. pgloader's target is always a PostgreSQL family database (vanilla PG, Aurora PG, RDS PG, or Citus). It does not write to MySQL, files, or S3. DBConvert Streams writes to MySQL/MariaDB, PostgreSQL, files, and S3 (with Snowflake target coming soon).
When should I not use DBConvert Streams?
When the job is a one-shot load into PostgreSQL with no CDC needed afterwards, the source is something pgloader handles particularly well (SQLite, DBF, IXF, fixed-width), and you want a free OSS CLI tool. In those cases pgloader is the simpler choice.