xoe-labs / dodoo-loader

GNU Lesser General Public License v3.0
1 stars 1 forks source link

dodoo-loader

.. image:: https://img.shields.io/badge/license-LGPL--3-blue.svg :target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html :alt: License: LGPL-3 .. image:: https://badge.fury.io/py/dodoo-loader.svg :target: http://badge.fury.io/py/dodoo-loader

dodoo-loader is a set of useful Odoo maintenance functions. They are available as CLI scripts (based on dodoo_), as well as composable python functions.

.. contents::

Script

.. code:: bash

  Usage: dodoo-loader [OPTIONS]

    Loads data into an Odoo Database.

    Supply data by file or stream in a supported format and load it into a
    local or remote Odoo database.

    Highlights:

    • Detects model-level dependency on related fields and record-level
    dependencies in tree-like tables (hierarchies). Cares to load everything
    in the correct order*.

    • Supported formats: JSON, CSV, XLS & XLSX

    • Logs success to --out. Next runs deduplicate based on those logs.

    • [TBD] Can trigger onchange as if data was entered through forms.

    Note: record-level dependency detection only works with parent columns
    ending in /.id (db ID) or /id (ext ID). Either one must match the
    principal id or .id column (to which it refers).

    Note: For UX and security reasons, nested semantics (as in Odoo) are not
    supported as they usually are undeterministic (lack of identifier on the
    nested levels). That's too dangerous for ETL.

  Options:
    -f, --file FILENAME         Path to the file, that you want to load. You can
                                specify this option multiple times for more than
                                one file to load.
    -s, --stream TEXT...        [stream type model] Stream, you want to load.
                                `type` can be csv or json. `model` can be any
                                odoo model availabe in env. You can specify this
                                option multiple times for more than one stream
                                to load.
    --onchange / --no-onchange  [TBD] Trigger onchange methods as if data was
                                entered through normal form views.  [default:
                                True]
    --batch INTEGER             The batch size. Records are cut-off for
                                iteration after so many records.  [default: 50]
    --out FILENAME              Log success into a json file.  [default:
                                ./log.json]
    --logfile FILE              Specify the log file.
    -d, --database TEXT         Specify the database name. If present, this
                                parameter takes precedence over the database
                                provided in the Odoo configuration file.
    --log-level TEXT            Specify the logging level. Accepted values
                                depend on the Odoo version, and include debug,
                                info, warn, error.  [default: info]
    -c, --config FILE           Specify the Odoo configuration file. Other ways
                                to provide it are with the ODOO_RC or
                                OPENERP_SERVER environment variables, or
                                ~/.odoorc (Odoo >= 10) or ~/.openerp_serverrc.
    --help                      Show this message and exit.

Useful links

.. _dodoo: https://pypi.python.org/pypi/dodoo

Credits


Contributors:

- David Arnold (XOE_)

.. _XOE: https://xoe.solutions

Maintainer

.. image:: https://erp.xoe.solutions/logo.png :alt: XOE Corps. SAS :target: https://xoe.solutions