From ec071af0ad0330d2f20d780e9fc889a8177b54bc Mon Sep 17 00:00:00 2001 From: Dimitri Fontaine Date: Wed, 19 Dec 2018 15:27:44 +0100 Subject: [PATCH] Add a Feature Matrix to the documentation. That helps having both an overview of what pgloader is capable of doing with a database migration, and also documenting that some sources don't have the full support for some features yet. --- docs/index.rst | 12 ++++++++++++ docs/intro.rst | 41 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) diff --git a/docs/index.rst b/docs/index.rst index aac16f7..ca5e672 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -6,6 +6,18 @@ Welcome to pgloader's documentation! ==================================== +pgloader loads data from various sources into PostgreSQL. It can transform +the data it reads on the fly and submit raw SQL before and after the +loading. It uses the `COPY` PostgreSQL protocol to stream the data into the +server, and manages errors by filling a pair of *reject.dat* and +*reject.log* files. + +Thanks to being able to load data directly from a database source, pgloader +also supports from migrations from other productions to PostgreSQL. In this +mode of operations, pgloader handles both the schema and data parts of the +migration, in a single unmanned command, allowing to implement **Continuous +Migration**. + .. toctree:: :maxdepth: 2 :caption: Table Of Contents: diff --git a/docs/intro.rst b/docs/intro.rst index ed981b7..f73c64d 100644 --- a/docs/intro.rst +++ b/docs/intro.rst @@ -53,6 +53,47 @@ PostgreSQL `_ webpage. In order to be able to follow this great methodology, you need tooling to implement the third step in a fully automated way. That's pgloader. +Features Matrix +--------------- + +Here's a comparison of the features supported depending on the source +database engine. Most features that are not supported can be added to +pgloader, it's just that nobody had the need to do so yet. + +========================== ======= ====== ====== =========== ========= +Feature SQLite MySQL MS SQL PostgreSQL Redshift +========================== ======= ====== ====== =========== ========= +One-command migration ✓ ✓ ✓ ✓ ✓ +Continuous Migration ✓ ✓ ✓ ✓ ✓ +Schema discovery ✓ ✓ ✓ ✓ ✓ +Partial Migrations ✓ ✓ ✓ ✓ ✓ +Schema only ✓ ✓ ✓ ✓ ✓ +Data only ✓ ✓ ✓ ✓ ✓ +Repeatable (DROP+CREATE) ✓ ✓ ✓ ✓ ✓ +User defined casting rules ✓ ✓ ✓ ✓ ✓ +Encoding Overrides ✗ ✓ ✗ ✗ ✗ +On error stop ✓ ✓ ✓ ✓ ✓ +On error resume next ✓ ✓ ✓ ✓ ✓ +Pre/Post SQL commands ✓ ✓ ✓ ✓ ✓ +Post-Schema SQL commands ✗ ✓ ✓ ✓ ✓ +Primary key support ✓ ✓ ✓ ✓ ✓ +Foreign key support ✓ ✓ ✓ ✓ ✗ +Incremental data loading ✓ ✓ ✓ ✓ ✓ +Online ALTER schema ✓ ✓ ✓ ✓ ✓ +Materialized views ✗ ✓ ✓ ✓ ✓ +Distribute to Citus ✗ ✓ ✓ ✓ ✓ +========================== ======= ====== ====== =========== ========= + +For more details about what the features are about, see the specific +reference pages for your database source. + +For some of the features, missing support only means that the feature is not +needed for the other sources, such as the capability to override MySQL +encoding metadata about a table or a column. Only MySQL in this list is left +completely unable to guarantee text encoding. Or Redshift not having foreign +keys. + + Commands --------