DBConvert Streams vs pgloader
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.
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, running
Quick answer
Choose by job
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.
Choose pgloader if
- Your target is always PostgreSQL, the migration is a one-shot cutover with no CDC after, and a free tool matters more than speed.
- 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.
At a glance
Side-by-side facts
AI and MCP
The AI difference
DBConvert Streams
DBConvert pairs guided migration with AI inspection and validation, then continues into CDC instead of ending when the one-time load finishes.
Explore DBConvert AI and MCPpgloader
No documented AI or MCP features.
Where DBConvert Streams goes further
Load the same table faster
One machine, 5 million rows, MySQL 8 → PostgreSQL 16, default settings on both sides, two alternating runs each: DBConvert Streams 6.2–9.0 s, pgloader v4.0.0 13.3–13.5 s.
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
In upsert mode, a table with a single-column integer primary key is loaded in checkpointed chunks, and an interrupted Load picks up from the last completed chunk. Other tables, and the faster load into an empty target, start over. 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.
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.
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 SQLite and DBF/FoxPro migration into PostgreSQL and other supported targets, DBConvert provides dedicated GUI migration and synchronization tools.
Explore DBConvert migration toolsRun it with no service behind it
A single binary and a .load command file or a one-line URL. Nothing to install as a service first. DBConvert Streams also runs without its UI, but through a REST API on running services.
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.
See it on your own databases — self-hosted, free evaluation, no credit card.
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 (in upsert mode, 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?
Yes for MySQL and PostgreSQL sources — the same one-shot load runs faster, and CDC can follow it.
- pgloader — 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; Load also writes 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. 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 resumes in upsert mode: a table with a single-column integer primary key is loaded in checkpointed chunks and picks up from the last completed chunk. Other tables, and loads into an empty target, start over.
Does DBConvert Streams support all pgloader sources?
No. pgloader supports source formats — DBF, IXF, fixed-width files, SQLite, MS SQL Server, Redshift, and Citus — that DBConvert Streams does not cover. DBConvert Streams supports MySQL/MariaDB, PostgreSQL, files (CSV, JSONL, Parquet), and S3. The broader DBConvert product line covers supported relational migrations including SQL Server, SQLite, and DBF/FoxPro.
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, Snowflake, files, and S3.
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.