{"id":13415308,"url":"https://github.com/dimitri/pgloader","last_synced_at":"2025-05-13T21:06:29.489Z","repository":{"id":37742971,"uuid":"594087","full_name":"dimitri/pgloader","owner":"dimitri","description":"Migrate to PostgreSQL in a single command!","archived":false,"fork":false,"pushed_at":"2024-09-18T12:26:47.000Z","size":20881,"stargazers_count":5748,"open_issues_count":444,"forks_count":572,"subscribers_count":79,"default_branch":"master","last_synced_at":"2025-04-28T12:06:03.389Z","etag":null,"topics":["clozure-cl","common-lisp","csv","database","dbase","ixf","migration","mssql","mysql","pgloader","postgresql","sbcl","sqlite"],"latest_commit_sha":null,"homepage":"http://pgloader.io","language":"Common Lisp","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dimitri.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"dimitri"}},"created_at":"2010-04-04T11:10:22.000Z","updated_at":"2025-04-28T08:28:24.000Z","dependencies_parsed_at":"2023-02-13T00:01:25.482Z","dependency_job_id":"43b150a0-9f0d-4523-9640-10e235051cfa","html_url":"https://github.com/dimitri/pgloader","commit_stats":{"total_commits":1634,"total_committers":110,"mean_commits":"14.854545454545455","dds":0.1450428396572827,"last_synced_commit":"70f355767018cc1d2770948563100b328fcc3f26"},"previous_names":[],"tags_count":39,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dimitri%2Fpgloader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dimitri%2Fpgloader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dimitri%2Fpgloader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dimitri%2Fpgloader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dimitri","download_url":"https://codeload.github.com/dimitri/pgloader/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251311330,"owners_count":21569009,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["clozure-cl","common-lisp","csv","database","dbase","ixf","migration","mssql","mysql","pgloader","postgresql","sbcl","sqlite"],"created_at":"2024-07-30T21:00:46.888Z","updated_at":"2025-04-28T12:06:17.866Z","avatar_url":"https://github.com/dimitri.png","language":"Common Lisp","readme":"# PGLoader\n\n[![Build Status](https://travis-ci.org/dimitri/pgloader.svg?branch=master)](https://travis-ci.org/dimitri/pgloader)\n[![Join the chat at https://gitter.im/dimitri/pgloader](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/dimitri/pgloader?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n[![Read The Docs Status](https://readthedocs.org/projects/pgloader/badge/?version=latest\u0026style=plastic)](http://pgloader.readthedocs.io/en/latest/)\n\npgloader is a data loading tool for PostgreSQL, using the `COPY` command.\n\nIts main advantage over just using `COPY` or `\\copy`, and over using a\n*Foreign Data Wrapper*, is its transaction behaviour, where *pgloader*\nwill keep a separate file of rejected data, but continue trying to\n`copy` good data in your database.\n\nThe default PostgreSQL behaviour is transactional, which means that\n*any* erroneous line in the input data (file or remote database) will\nstop the entire bulk load for the table.\n\npgloader also implements data reformatting, a typical example of that\nbeing the transformation of MySQL datestamps `0000-00-00` and\n`0000-00-00 00:00:00` to PostgreSQL `NULL` value (because our calendar\nnever had a *year zero*).\n\n## Documentation\n\nFull documentation is available online, including manual pages of all the\npgloader sub-commands. Check out\n[https://pgloader.readthedocs.io/](https://pgloader.readthedocs.io/en/latest/).\n\n```\n$ pgloader --help\npgloader [ option ... ] SOURCE TARGET\n  --help -h                       boolean  Show usage and exit.\n  --version -V                    boolean  Displays pgloader version and exit.\n  --quiet -q                      boolean  Be quiet\n  --verbose -v                    boolean  Be verbose\n  --debug -d                      boolean  Display debug level information.\n  --client-min-messages           string   Filter logs seen at the console (default: \"warning\")\n  --log-min-messages              string   Filter logs seen in the logfile (default: \"notice\")\n  --summary -S                    string   Filename where to copy the summary\n  --root-dir -D                   string   Output root directory. (default: #P\"/tmp/pgloader/\")\n  --upgrade-config -U             boolean  Output the command(s) corresponding to .conf file for v2.x\n  --list-encodings -E             boolean  List pgloader known encodings and exit.\n  --logfile -L                    string   Filename where to send the logs.\n  --load-lisp-file -l             string   Read user code from files\n  --dry-run                       boolean  Only check database connections, don't load anything.\n  --on-error-stop                 boolean  Refrain from handling errors properly.\n  --no-ssl-cert-verification      boolean  Instruct OpenSSL to bypass verifying certificates.\n  --context -C                    string   Command Context Variables\n  --with                          string   Load options\n  --set                           string   PostgreSQL options\n  --field                         string   Source file fields specification\n  --cast                          string   Specific cast rules\n  --type                          string   Force input source type\n  --encoding                      string   Source expected encoding\n  --before                        string   SQL script to run before loading the data\n  --after                         string   SQL script to run after loading the data\n  --self-upgrade                  string   Path to pgloader newer sources\n  --regress                       boolean  Drive regression testing\n```\n\n## Usage\n\nYou can either give a command file to pgloader or run it all from the\ncommand line, see the\n[pgloader quick start](https://pgloader.readthedocs.io/en/latest/tutorial/tutorial.html#pgloader-quick-start) on\n\u003chttps://pgloader.readthedocs.io\u003e for more details.\n\n    $ ./build/bin/pgloader --help\n    $ ./build/bin/pgloader \u003cfile.load\u003e\n\nFor example, for a full migration from SQLite:\n\n    $ createdb newdb\n    $ pgloader ./test/sqlite/sqlite.db postgresql:///newdb\n\nOr for a full migration from MySQL, including schema definition (tables,\nindexes, foreign keys, comments) and parallel loading of the corrected data:\n\n    $ createdb pagila\n    $ pgloader mysql://user@localhost/sakila postgresql:///pagila\n\n## LICENCE\n\npgloader is available under [The PostgreSQL\nLicence](http://www.postgresql.org/about/licence/).\n\n## INSTALL\n\nPlease see full documentation at\n[https://pgloader.readthedocs.io/](https://pgloader.readthedocs.io/en/latest/install.html).\n\nIf you're using debian, it's already available:\n\n    $ apt-get install pgloader\n\nIf you're using docker, you can use the latest version built by the CI at\neach commit to the master branch:\n\n    $ docker pull ghcr.io/dimitri/pgloader:latest\n    $ docker run --rm -it ghcr.io/dimitri/pgloader:latest pgloader --version\n","funding_links":["https://github.com/sponsors/dimitri"],"categories":["Common Lisp","sqlite","Expert Systems","Compiled list","Utilities"],"sub_categories":["plv8:"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdimitri%2Fpgloader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdimitri%2Fpgloader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdimitri%2Fpgloader/lists"}