awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
dimitri avatar

dimitri/pgloader

0
View on GitHub↗
6,295 stars·598 forks·Common Lisp·other·21 viewspgloader.io↗

Pgloader

pgloader is a command-line tool that automates the migration of data and schema from various source databases and file formats into PostgreSQL. It combines schema discovery, parallel data pipelines, and type casting into a single, declarative workflow, using PostgreSQL's COPY protocol for high-throughput bulk loading.

The tool distinguishes itself by compiling a dedicated command language into concurrent reader-writer pipelines that handle schema introspection, data transformation, and error-resilient batch processing. It supports migrating entire databases from MySQL, MS SQL, SQLite, and PostgreSQL itself, as well as loading data from CSV, fixed-width, dBase, and IBM IXF files. During migration, it can automatically discover and replicate source schemas, apply custom type casting rules, rename or restructure tables and columns, and continue loading valid rows while saving rejected records for later review.

Beyond one-shot migrations, pgloader offers capabilities for continuous database synchronization, selective table migration, and online schema alterations. It can also distribute data across Citus cluster shards, download source files via HTTP, and execute custom SQL before and after loading. The tool is configured through command files or direct CLI arguments, with support for template variable substitution from environment variables or INI files.

Features

  • PostgreSQL Bulk Importers - pgloader loads CSV, fixed-width, DBF, and IXF files into PostgreSQL with configurable parsing, transformation, and error handling.
  • PostgreSQL Target Migrations - Transfers schema and data from various sources into PostgreSQL automatically.
  • Bulk Data Loading - Migrates data from various database and file formats into PostgreSQL using the COPY command.
  • Cross-Database Data Migrations - Migrates entire databases between engines with a single unattended command.
  • Cross-Database Schema Migrations - Transfers complete database schemas between different database systems during migration.
  • Parallel Batch Loading Pipelines - pgloader reads source data in concurrent reader-writer pipelines, each processing a disjoint range, and sends formatted batches to PostgreSQL via COPY.
  • Migration Casting Rules - Applies custom type casting, field renaming, and data reformatting rules during migration.
  • Database Connectivity - Connects to source and target databases using connection strings with authentication and options.
  • MS SQL to PostgreSQL Migrations - Migrates MS SQL Server databases to PostgreSQL with schema discovery.
  • SQLite to PostgreSQL Migrations - Migrates entire SQLite databases into PostgreSQL with schema and data transfer.
  • SQLite to PostgreSQL Migrations - Automates migration of SQLite databases into PostgreSQL with schema discovery and index creation.
  • Database Schema Migrations - Transfers complete schema definitions including indexes, foreign keys, and comments.
  • Schema Introspection - Connects to live source databases to introspect metadata, then generates target schema DDL and transformation rules programmatically.
  • PostgreSQL-to-PostgreSQL Migrations - Migrates complete PostgreSQL databases between servers with all objects.
  • Data Loading - Reads data from CSV, fixed-width, dBase, and IBM IXF files, transforming it on the fly.
  • Error-Resilient Loading - Continues loading valid rows while saving rejected records to separate files, using per-row error handling instead of full transaction rollbacks.
  • Multi-Format File Loading - Loads data from CSV, fixed-column, dBase, and IBM IXF files using the streaming COPY protocol.
  • Streaming COPY Protocol Implementations - Streams transformed data rows directly into PostgreSQL's COPY protocol, bypassing row-by-row INSERT for high-throughput bulk loading.
  • MySQL Compatibility - Loads MySQL databases into PostgreSQL with schema and parallel data loading.
  • MySQL to PostgreSQL Migrations - Migrates MySQL databases to PostgreSQL with type casting and sanitization.
  • Cross-Database Schema Replicators - Discovers and replicates source database schemas including tables, indexes, and constraints.
  • SQLite to PostgreSQL Migrations - Migrates entire SQLite databases into PostgreSQL with schema creation.
  • CSV Data Loaders - Reads structured data from CSV files and inserts it into PostgreSQL tables using the COPY command.
  • Data Transformation Engines - Applies custom type casting, field renaming, and data reformatting rules during migration.
  • Database Migration CLIs - Command-line tool that automates schema discovery and parallel loading from multiple source databases.
  • Schema Migrations - Controls table creation, index building, and sequence resetting during automated schema migration.
  • Streaming Data Transformers - Modifies and cleans data values as they are read from a source file before inserting them into PostgreSQL.
  • File-to-PostgreSQL Migrations - Loads data from multiple file formats into PostgreSQL using streaming COPY.
  • Database Load Pipelines - Runs concurrent reader-writer pipelines per table to maximize PostgreSQL bulk load throughput.
  • Parallel Data Pipelines - Spawns multiple concurrent threads that each read a disjoint range of source data, transform it, and feed it into a dedicated COPY stream.
  • Drop and Create Migrations - Drops existing target objects before recreating them, enabling safe repeated migration runs.
  • Pre and Post Load SQL - Executes custom SQL commands before and after loading data, enabling table creation and post-processing.
  • Continuous Synchronization - Keeps a target PostgreSQL database synchronized with a source database by streaming changes over time.
  • Configurable CSV Parsing - Specifies field delimiters, enclosing characters, escape sequences, and header handling to match CSV file formats.
  • Data Reformatters - Transforms incompatible data formats, such as zero-dates, during the loading process.
  • Load-Time Transformations - Applies custom rewriting rules to source data, such as converting integers to IP ranges or zero dates to NULL, before loading.
  • Custom Casting Rules - Allows defining custom rules for converting source data types to PostgreSQL types during migration.
  • Field Mapping Expressions - Transforms and projects input fields into a different set of target columns using custom expressions.
  • CSV - Applies per-column options such as date format parsing, null-value substitution, and whitespace trimming during CSV loading.
  • Fixed-Width File Loaders - Loads data from fixed-width text files into PostgreSQL tables.
  • Inline and Stdin - Reads COPY-formatted data directly from within the command file or from standard input.
  • PostgreSQL COPY Format Loading - Loads data from PostgreSQL COPY TEXT format files, supporting local files, HTTP URLs, and zip archives.
  • Stream and Inline Sources - Reads data from a file, stdin, or inline source and loads it into a PostgreSQL table.
  • Migration DSLs - pgloader uses a dedicated command language to specify every aspect of a data load, including casting rules, encoding overrides, and pre/post SQL.
  • Online Schema Alterations During Migration - pgloader renames, drops, or adds columns and tables on the fly to fix past design issues during migration.
  • Pre and Post Load SQL Execution - Executes custom SQL queries before or after the data load to prepare or finalize the database.
  • Data-Only Migrations - Loads data into an existing schema with index management for performance.
  • Drop-Create Schema Migrations - Drops and recreates target tables, indexes, and constraints before loading data for repeatable migrations.
  • Pre and Post Load SQL - Executes user-defined SQL commands before and after a data load for table creation, indexing, or post-processing.
  • Schema or Data Only Migrations - Loads only schema or only data with index management for performance.
  • Index Creation Concurrency Limiters - pgloader caps the number of parallel CREATE INDEX threads to avoid overwhelming the database during bulk loads.
  • Schema - Renames source schemas and tables on the fly, mapping them to different names in the target database.
  • Schema Renaming - Renames tables, moves them to different schemas, or sets storage parameters before migration.
  • Multi-Source CSV Loading - Loads data from a file path, standard input, inline data, or files matching a regex pattern.
  • Drop-Create Migrations - Drops and recreates target schema objects on each run for safe repeated migrations during development and testing.
  • On-the-Fly Renaming - Renames tables, columns, or constraints on the fly as part of the migration process.
  • Pre and Post Load SQL Execution - Executes user-defined SQL statements before and after the load to prepare tables or create indexes.
  • Legacy Database File Loaders - Loads data from legacy dBase file format into PostgreSQL tables.
  • Citus Cluster Migrations - Migrates data into Citus distributed PostgreSQL clusters with automatic shard distribution.
  • Bulk Load Error Recovery - Continues loading valid rows while saving rejected records to separate files for review.
  • Selective Table Migrations - Selectively migrates a subset of tables from source to target database.
  • Intra-Table Parallel Pipelines - pgloader runs multiple independent reader-writer pipelines per table when the source supports range partitioning and concurrency exceeds one.
  • Table-Level Concurrency Controls - pgloader sets how many tables copy simultaneously, with separate defaults for database and file sources.
  • Error Handling - Continues loading valid records while saving rejected rows to separate reject files.
  • Bulk Load - Offers configurable error handling during bulk loading, continuing or stopping on errors.
  • Data Utilities - High-speed data loading utility.
  • Databases - High-performance data loading tool for PostgreSQL.
  • Databases and ORMs - High-performance data loading tool for PostgreSQL.

Star history

Star history chart for dimitri/pgloaderStar history chart for dimitri/pgloader

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does dimitri/pgloader do?

pgloader is a command-line tool that automates the migration of data and schema from various source databases and file formats into PostgreSQL. It combines schema discovery, parallel data pipelines, and type casting into a single, declarative workflow, using PostgreSQL's COPY protocol for high-throughput bulk loading.

What are the main features of dimitri/pgloader?

The main features of dimitri/pgloader are: PostgreSQL Bulk Importers, PostgreSQL Target Migrations, Bulk Data Loading, Cross-Database Data Migrations, Cross-Database Schema Migrations, Parallel Batch Loading Pipelines, Migration Casting Rules, Database Connectivity.

Which projects share features with dimitri/pgloader?

Projects with overlapping indexed features include: jeremyevans/sequel — Sequel is a relational database toolkit for Ruby that provides object-relational mapping, a fluent SQL query builder,… lib/pq — pq is a PostgreSQL driver for Go that implements the standard database/sql interface. It serves as a connection… ilyakatz/data-migrate — Data-migrate is a command-line utility designed for managing and executing sequential data transformations alongside… bruin-data/ingestr — ingestr is a command-line tool for copying and syncing data between different database engines and third-party… alibaba/datax — DataX is a distributed data integration framework and plugin-based ETL tool designed for synchronizing large datasets… dotnet/efcore — Entity Framework Core is an object-relational mapper that enables developers to interact with database systems using…

Projects sharing features with Pgloader

These projects share indexed features with Pgloader. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • jeremyevans/sequeljeremyevans avatar

    jeremyevans/sequel

    5,076View on GitHub↗

    Sequel is a relational database toolkit for Ruby that provides object-relational mapping, a fluent SQL query builder, and schema migration capabilities. It maps database tables to Ruby classes with support for associations, validations, lifecycle hooks, and eager loading, offering a comprehensive ORM layer for building data-centric applications. Sequel distinguishes itself through a plugin-based extension architecture that allows composable customization of models, databases, and datasets without relying on deep inheritance hierarchies. It includes a thread-safe connection pool with support f

    Ruby
    View on GitHub↗5,076
  • lib/pqlib avatar

    lib/pq

    9,903View on GitHub↗

    pq is a PostgreSQL driver for Go that implements the standard database/sql interface. It serves as a connection library and protocol implementation that translates application data types into the binary and text formats required by PostgreSQL. The project provides specialized utilities for high-performance data ingestion using bulk data loading and a dedicated bulk data importer. It also features an implementation for listening to asynchronous server notifications and provides tools for connection load balancing across multiple hosts and ports. The driver covers a broad surface of database i

    Go
    View on GitHub↗9,903
  • bruin-data/ingestrbruin-data avatar

    bruin-data/ingestr

    3,714View on GitHub↗

    ingestr is a command-line tool for copying and syncing data between different database engines and third-party platforms without writing custom code. It functions as an ETL pipeline utility that extracts data from diverse sources and loads it into destinations. The tool features a schema-agnostic data loader that maps source fields to destination columns dynamically, removing the need for predefined static table definitions. It also operates as an incremental data synchronizer, updating destination tables by appending new records or merging changes to maintain current datasets. The system pr

    Go
    View on GitHub↗3,714
  • ilyakatz/data-migrateilyakatz avatar

    ilyakatz/data-migrate

    1,544View on GitHub↗

    Data-migrate is a command-line utility designed for managing and executing sequential data transformations alongside standard database schema migrations. It functions as a framework for version control, allowing teams to track, roll back, and synchronize both structural database changes and data updates across multiple environments and deployment pipelines. The tool distinguishes itself by coordinating migrations across multiple database connections within a single application, ensuring data integrity in distributed architectures. It supports modular project structures by allowing migration s

    Rubydata-schemarailsschema-migrations
    View on GitHub↗1,544
Compare all 30 related projects→