
pgloader
pgloader moves data from databases and flat files into PostgreSQL, translating schemas and applying casting rules as it loads.
What pgloader is
pgloader moves data from databases and flat files into PostgreSQL, translating schemas and applying casting rules as it loads. Its listed sources include MySQL, MariaDB, MS SQL Server, SQLite, CSV, fixed-width files, and DBF; Oracle support is not built yet. The migration pipeline fetches a source catalog, prepares the target, performs parallel COPY, builds indexes in parallel, and completes the schema. The MySQL path translates enums, converts TINYINT(1) values to booleans, handles zero dates, and can look up credentials in .my.cnf. For MS SQL Server, it supports Azure AD authentication, sequence migration, and multi-column foreign keys. File imports can separate rejected rows after a failed COPY transaction while accepted rows continue loading. Custom casting rules go in a .load file. pgloader is self-hosted on Linux. Version 4 is a pre-release JAR requiring Java 21 or later; version 3 in Common Lisp is the stable packaged release.
Good
- Loads from databases and several flat-file formats.
- Runs COPY and index creation in parallel.
- Custom casting rules can be set in a .load file.
- Separates rejected file rows while accepted rows load.
Watch out
- Oracle support is not built yet.
- Version 4 is a pre-release.
- Version 4 requires Java 21 or later.
Who it suits
It suits teams moving database or flat-file data into PostgreSQL who can run software on Linux or in a self-hosted environment. Those needing support beyond best-effort GitHub help can consider its paid tiers.
Verdict
pgloader covers several database and file sources, with parallel loading and source-specific migration features. Check its Oracle limitation and release status, and note that it is self-hosted rather than a continuous replication tool.
Plans and prices
From pgloader's own pricing page, checked 2 Oct 2026.
| Plan | Price | What it gives you |
|---|---|---|
| Community | Free | Evaluating or non-critical use · Best-effort support through GitHub |
| Supporter | €100 a month | Priority queue · Answered within a few days · €100/mo |
| Professional | €800 a month | Patches triaged under an SLA · Land in the next release · €800/mo |
| Sponsor | €2,000 a month | Roadmap input · Development bandwidth reserved · €2,000/mo |
| Fast-Lane | €3,000, paid once | One urgent blocker · Guaranteed resolution in the next release · No subscription required · €3,000/issue |
| Per-Release Sponsor | €10,000, paid once | Prioritized PRs and features · Credited in release notes · One sponsor per release · €10,000/release |
The facts
Each one read from pgloader's own pages, with the date it was checked.
What it does
- Custom rules
- Custom casting rules can be specified in a .load file.checked 2 Oct 2026
- File imports
- For file sources, failed COPY transactions are retried by separating rejected rows while allowing accepted rows to load.checked 2 Oct 2026
- Limits
- The roadmap says pgloader works from catalog representations and does not currently parse SQL object definitions; view definitions and stored procedures would require SQL translation support.checked 2 Oct 2026
- Migration sources
- The site lists MySQL, MariaDB, MS SQL Server, SQLite, CSV, fixed-width, and DBF sources; Oracle support is not built yet.checked 2 Oct 2026
- MySQL features
- The MySQL path includes enum-to-type translation, TINYINT(1)-to-boolean conversion, zero-date handling, and .my.cnf credential lookup.checked 2 Oct 2026
- Pipeline
- Its five stages are catalog fetch, target preparation, parallel COPY, parallel index creation, and schema completion.checked 2 Oct 2026
- Purpose
- pgloader migrates data into PostgreSQL from databases and flat files using schema translation, casting rules, and parallel loading.checked 2 Oct 2026
- Runtime
- Version 4 is distributed as a self-contained JAR and requires Java 21 or later.checked 2 Oct 2026
- Security
- The site mentions Azure AD authentication for MS SQL Server but does not state security certifications or compliance attestations.checked 2 Oct 2026
- SQL Server features
- The MS SQL Server path includes Azure AD authentication, sequence migration, and multi-column foreign key support.checked 2 Oct 2026
- Support
- The free Community tier receives best-effort help through GitHub, while paid tiers offer priority handling and related support benefits.checked 2 Oct 2026
- Version status
- The site describes v4 as a pre-release and v3 in Common Lisp as the stable, packaged release.checked 2 Oct 2026
The company
- Founded
- 2005checked 28 Sep 2026
- Maker
- The maker identifies Dimitri Fontaine as pgloader’s author and maintainer since 2005.checked 2 Oct 2026
The full review of pgloader
pgloader is a self-hosted migration utility for bringing supported databases and flat files into PostgreSQL. It is best for teams that can run their own tooling and need schema conversion with parallel loading. Its focused PostgreSQL workflow is compelling for supported sources, but version status, Oracle coverage, and SQL-object limitations deserve careful review before adoption.
Overview
pgloader moves data through five stages: fetching the source catalog, preparing the target, running parallel COPY operations, creating indexes in parallel, and completing the schema. That sequence suits one-time or project-based migrations where throughput and repeatable conversion rules matter. Discovery and assessment plus dependency mapping help plan a move, while the absence of continuous replication makes it unsuitable as an ongoing synchronization service.
Sources include MySQL, MariaDB, MS SQL Server, SQLite, CSV, fixed-width files, and DBF. Oracle migration is not built yet, so Oracle teams need another route. Dimitri Fontaine has authored and maintained the project since 2005.
Key features
Source-aware conversion
The MySQL path translates enum values into PostgreSQL types, turns TINYINT(1) into boolean, handles zero dates, and can read credentials from .my.cnf. These choices address common MySQL conversion friction without requiring every adjustment to be hand-written. For MS SQL Server, Azure AD authentication, sequence migration, and multi-column foreign-key support cover important enterprise schema details. They help SQL Server projects in particular, although they do not amount to a universal SQL translator.
Parallel loading and file handling
Parallel data copying and index creation can shorten migration stages on suitable workloads. File imports are more forgiving than a simple all-or-nothing load: when rows cause a COPY transaction to fail, pgloader separates rejected rows, retries, and continues loading accepted data. That behavior is valuable for imperfect CSV, fixed-width, or DBF feeds where isolating bad records is preferable to restarting the entire import.
Custom rules and boundaries
A .load file accepts custom casting rules, giving operators control when built-in conversions do not match application expectations. The larger limitation is architectural: the roadmap says pgloader works from catalog representations and does not currently parse SQL object definitions. View definitions and stored procedures therefore need SQL-translation support outside this tool, adding work for applications that depend heavily on programmable database objects.
Runtime and release position
Version 4 is distributed as a self-contained JAR and requires Java 21 or later. It is described as a pre-release, while version 3 in Common Lisp remains the stable, packaged release. Teams prioritizing a conservative production baseline should weigh the newer runtime against the maturity of the stable line.
Pricing
pgloader uses a freemium support model. The Community tier costs nothing and is intended for evaluation or non-critical use, with best-effort help through GitHub. It is the sensible starting point for teams that can manage migrations independently and accept community-level response.
| Plan | Price | What it provides | Best fit |
|---|---|---|---|
| Community | free | Best-effort GitHub support | Evaluation and non-critical migrations |
| Supporter | €100 a month | Priority queue; answered within a few days | Teams needing faster assistance |
| Professional | €800 a month | Patches triaged under an SLA and targeted for the next release | Production users requiring release-backed fixes |
| Sponsor | €2,000 a month | Roadmap input and reserved development bandwidth | Organizations funding direction and capacity |
| Fast-Lane | €3,000, paid once | One urgent blocker, with resolution guaranteed in the next release; no subscription | A single time-critical impediment |
| Per-Release Sponsor | €10,000, paid once | Prioritized pull requests and features, release-note credit, one sponsor per release | Organizations sponsoring a specific release |
The paid tiers buy response, patch handling, or development commitment rather than a hosted service. None changes the self-hosted deployment model, and no continuous-replication capability is included.
Platforms
pgloader runs on Linux and is self-hosted. Version 4 requires Java 21 or later; the stable packaged v3 line uses Common Lisp. Teams must therefore own the runtime, deployment, and operational responsibility rather than relying on a vendor-managed endpoint.
Who it's for
Choose pgloader when a Linux-capable team is moving MySQL, MariaDB, SQL Server, SQLite, or supported file formats into PostgreSQL and wants parallel loading plus configurable casting. It also suits organizations that need discovery, assessment, and dependency mapping before a migration. Look elsewhere when Oracle is the source, when views and stored procedures must be translated automatically, or when ongoing replication is a requirement.
Pros and cons
- Pros: Broad coverage across several databases and flat-file formats; parallel data and index stages; useful MySQL and SQL Server-specific conversions; retry-and-isolate behavior for rejected file rows; custom casting through .load files; self-hosted operation.
- Cons: No Oracle source support; no continuous replication; SQL object definitions, views, and stored procedures are outside current parsing capability; v4 is pre-release and requires Java 21; Community support is best effort.
Alternatives
For a broader cloud migration program, consider Cloud Migration Tools. AWS Transform MGN (formerly AWS Application Migration Service) is a paid service with a free period of up to 2,160 hours per source server, focused on AWS replication infrastructure rather than a self-hosted PostgreSQL loader. Google Cloud Migration Center is free for cost estimates and assessments, though other Google Cloud products can incur charges. Azure Application Insights uses usage-based Azure Monitor Logs pricing with the first 5 GB per month per billing account free, making it an observability-oriented alternative rather than a direct loader.
Google Compute Engine offers a freemium compute platform with a free tier and trial, useful when you need infrastructure to run migration workloads. Amazon Database Migration Service is a paid AWS option with free-tier credits valid for up to 12 months. AWS Schema Conversion Tool is a free desktop-oriented schema conversion utility for supported Windows and Linux distributions. Google Migrate to Containers is free for migration work but targets containerizing workloads. For Oracle-to-PostgreSQL projects, Ora2Pg is a free GPL v3 alternative.
Verdict
pgloader is a strong choice for technically capable teams performing controlled migrations into PostgreSQL from its supported sources, especially when parallel loading and source-specific casting reduce conversion effort. Choose another product when you need Oracle support, translation of views and stored procedures, managed cloud operations, or continuous replication.
Alternatives to pgloader
- 1

Amazon Database Migration Service
Free planWebAPI7.0Free plan - 2

AWS Mainframe Modernization
WebAPILinuxSelf-hosted6.9From $0.31 a month - 3

CAST Highlight
WebAPILinuxmacOS6.9From $6,800 a year - 4
ShareGate
WebAPISelf-hostedWindows6.7$5,995 one-time - 5

Device42
WebAPILinuxmacOS6.5 - 6

RiverMeadow Workload Mobility Platform
WebAPISelf-hosted6.5From $150 a year
