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

Aspect
pgloader
DBConvert Streams
Tool type
OSS command-line loader
Database IDE + migration + CDC
Direction
INTO PostgreSQL only
Bidirectional + files/S3 either way
Source coverage
MySQL, SQLite, MS SQL Server, DBF, IXF, CSV, fixed-width, Redshift, Citus
MySQL/MariaDB, PostgreSQL, files, S3
Target coverage
PostgreSQL family (vanilla PG, Aurora PG, RDS PG, Citus)
MySQL/MariaDB, PostgreSQL, files, S3, Snowflake (coming soon)
Initial load (one-shot)
Yes (very fast COPY-based)
Yes
Resumable initial load
No (restart from scratch on interrupt)
Yes (checkpointed state)
Ongoing log-based CDC after load
No
Yes (MySQL binlog, PG logical replication)
Built-in IDE / SQL editor
No (CLI)
Yes
Source/target data comparison
No (manual)
Yes
Run history / stream monitor
No (logs only)
Yes
License
OSS (PostgreSQL License)
Free IDE + commercial Streams

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 family

Run 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

  1. 1Connect source and target databases in Data Explorer and inspect schemas side by side.
  2. 2Run Load mode for the initial migration with table mapping and filters (resumable from a checkpoint if interrupted).
  3. 3Open the Compare tab and validate row counts and sample data on the target.
  4. 4Switch to CDC mode to capture and apply ongoing source changes to the target.
  5. 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.

See the DBConvert product family

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.

Ready to try DBConvert Streams?