Import data from SQL and ODBC data sources.

import_odbc
REPOSITORY
REPOSITORYOCA/server-tools
GIT
GIThttps://github.com/OCA/server-tools.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-tools/tree/10.0/import_odbc
VERSION
VERSION 1.3
CATEGORY
CATEGORYTools
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Daniel Reis
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Daniel Reis
COMMITTERS
COMMITTERSPedro M. Baeza
WEBSITE
WEBSITEhttp://launchpad.net/addons-tko
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:20:00
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/server-tools:
    - base_external_dbsource
odoo/odoo:
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Import data directly from other databases.

Installed in the Administration module, menu Configuration -> Import from SQL.

Features:
 * Fetched data from the databases are used to build lines equivalent to
   regular import files. These are imported using the standard "import_data()"
   ORM method, benefiting from all its features, including xml_ids.
 * Each table import is defined by an SQL statement, used to build the
   equivalent for an import file. Each column's name should match the column
   names you would use in an import file. The first column must provide an
   unique identifier for the record, and will be used to build its xml_id.
 * SQL columns named "none" are ignored. This can be used for the first column
   of the SQL, so that it's used to build the XML Id but it's not imported to
   any OpenERP field.
 * The last sync date is the last successfull execution can be used in the SQL
   using "%(sync)s", or ":sync" in the case of Oracle.
 * When errors are found, only the record with the error fails import. The
   other correct records are commited. However, the "last sync date" will only
   be automaticaly updated when no errors are found.
 * The import execution can be scheduled to run automatically.

Examples:
 * Importing suppliers to res.partner:
      SELECT distinct
            [SUPPLIER_CODE] as "ref"
          , [SUPPLIER_NAME] as "name"
          , 1 as "is_supplier"
          , [INFO] as "comment"
        FROM T_SUPPLIERS
       WHERE INACTIVE_DATE IS NULL and DATE_CHANGED >= %(sync)s

 * Importing products to product.product:
      SELECT PRODUCT_CODE as "ref"
           , PRODUCT_NAME as "name"
           , 'res_partner_id_'+SUPPLIER_ID as "partner_id/id"
        FROM T_PRODUCTS
       WHERE DATE_CHANGED >= %(sync)s

Improvements ideas waiting for a contributor:
 * Allow to import many2one fields (currently not supported). Done by adding a
   second SQL sentence to get child record list?
 * Allow "import sets" that can be executed at different time intervals using
   different scheduler jobs.
 * Allow to inactivate/delete OpenERP records when not present in an SQL
   result set.

Contributors
============

* Maxime Chambreuil <maxime.chambreuil@savoirfairelinux.com>
    

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
view_import_dbtable_filter import.odbc.dbtable.filter import.odbc.dbtable search New
view_import_dbtable_form import.odbc.dbtable.form import.odbc.dbtable form New
view_import_dbtable_tree import.odbc.dbtable.tree import.odbc.dbtable tree New
Models touched (1)

New fields (0)

No new fields.

Public methods (2)
  • import_run(self, cr, uid, ids=None, context=None)
  • import_schedule(self, cr, uid, ids, context=None)
REPOSITORY
REPOSITORYOCA/server-tools
GIT
GIThttps://github.com/OCA/server-tools.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-tools/tree/9.0/import_odbc
VERSION
VERSION 1.3
CATEGORY
CATEGORYTools
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Daniel Reis
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Daniel Reis
COMMITTERS
COMMITTERS
WEBSITE
WEBSITEhttp://launchpad.net/addons-tko
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:15:23
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/server-tools:
    - base_external_dbsource
odoo/odoo:
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Import data directly from other databases.

Installed in the Administration module, menu Configuration -> Import from SQL.

Features:
 * Fetched data from the databases are used to build lines equivalent to
   regular import files. These are imported using the standard "import_data()"
   ORM method, benefiting from all its features, including xml_ids.
 * Each table import is defined by an SQL statement, used to build the
   equivalent for an import file. Each column's name should match the column
   names you would use in an import file. The first column must provide an
   unique identifier for the record, and will be used to build its xml_id.
 * SQL columns named "none" are ignored. This can be used for the first column
   of the SQL, so that it's used to build the XML Id but it's not imported to
   any OpenERP field.
 * The last sync date is the last successfull execution can be used in the SQL
   using "%(sync)s", or ":sync" in the case of Oracle.
 * When errors are found, only the record with the error fails import. The
   other correct records are commited. However, the "last sync date" will only
   be automaticaly updated when no errors are found.
 * The import execution can be scheduled to run automatically.

Examples:
 * Importing suppliers to res.partner:
      SELECT distinct
            [SUPPLIER_CODE] as "ref"
          , [SUPPLIER_NAME] as "name"
          , 1 as "is_supplier"
          , [INFO] as "comment"
        FROM T_SUPPLIERS
       WHERE INACTIVE_DATE IS NULL and DATE_CHANGED >= %(sync)s

 * Importing products to product.product:
      SELECT PRODUCT_CODE as "ref"
           , PRODUCT_NAME as "name"
           , 'res_partner_id_'+SUPPLIER_ID as "partner_id/id"
        FROM T_PRODUCTS
       WHERE DATE_CHANGED >= %(sync)s

Improvements ideas waiting for a contributor:
 * Allow to import many2one fields (currently not supported). Done by adding a
   second SQL sentence to get child record list?
 * Allow "import sets" that can be executed at different time intervals using
   different scheduler jobs.
 * Allow to inactivate/delete OpenERP records when not present in an SQL
   result set.

Contributors
============

* Maxime Chambreuil <maxime.chambreuil@savoirfairelinux.com>
    

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
view_import_dbtable_filter import.odbc.dbtable.filter import.odbc.dbtable search New
view_import_dbtable_form import.odbc.dbtable.form import.odbc.dbtable form New
view_import_dbtable_tree import.odbc.dbtable.tree import.odbc.dbtable tree New
Models touched (1)

New fields (0)

No new fields.

Public methods (2)
  • import_run(self, cr, uid, ids=None, context=None)
  • import_schedule(self, cr, uid, ids, context=None)
REPOSITORY
REPOSITORYOCA/server-tools
GIT
GIThttps://github.com/OCA/server-tools.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-tools/tree/8.0/import_odbc
VERSION
VERSION 0.1.3
CATEGORY
CATEGORYTools
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Daniel Reis
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Daniel Reis
COMMITTERS
COMMITTERSStéphane Bidoul, Yannick Vaucher, Sandy Carter, OCA Transbot, oca-travis, Weblate, Hendrix Costa, lauris
WEBSITE
WEBSITEhttp://launchpad.net/addons-tko
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:11:25
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/server-tools:
    - base_external_dbsource
odoo/odoo:
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
view_import_dbtable_filter import.odbc.dbtable.filter import.odbc.dbtable search New
view_import_dbtable_form import.odbc.dbtable.form import.odbc.dbtable form New
view_import_dbtable_tree import.odbc.dbtable.tree import.odbc.dbtable tree New
Models touched (1)

New fields (0)

No new fields.

Public methods (2)
  • import_run(self, cr, uid, ids=None, context=None)
  • import_schedule(self, cr, uid, ids, context=None)
REPOSITORY
REPOSITORYOCA/server-tools
GIT
GIThttps://github.com/OCA/server-tools.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-tools/tree/7.0/import_odbc
VERSION
VERSION 1.3
CATEGORY
CATEGORYTools
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Daniel Reis
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Daniel Reis
COMMITTERS
COMMITTERSYannick Vaucher, Alexandre Fayolle, Maxime Chambreuil, Sylvain LE GAL, Daniel Reis, webtec
WEBSITE
WEBSITEhttp://launchpad.net/addons-tko
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:07:15
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/server-tools:
    - base_external_dbsource
odoo/odoo:
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Import data directly from other databases.

Installed in the Administration module, menu Configuration -> Import from SQL.

Features:
 * Fetched data from the databases are used to build lines equivalent to
   regular import files. These are imported using the standard "import_data()"
   ORM method, benefiting from all its features, including xml_ids.
 * Each table import is defined by an SQL statement, used to build the
   equivalent for an import file. Each column's name should match the column
   names you would use in an import file. The first column must provide an
   unique identifier for the record, and will be used to build its xml_id.
 * SQL columns named "none" are ignored. This can be used for the first column
   of the SQL, so that it's used to build the XML Id but it's not imported to
   any OpenERP field.
 * The last sync date is the last successfull execution can be used in the SQL
   using "%(sync)s", or ":sync" in the case of Oracle.
 * When errors are found, only the record with the error fails import. The
   other correct records are commited. However, the "last sync date" will only
   be automaticaly updated when no errors are found.
 * The import execution can be scheduled to run automatically.

Examples:
 * Importing suppliers to res.partner:
      SELECT distinct
            [SUPPLIER_CODE] as "ref"
          , [SUPPLIER_NAME] as "name"
          , 1 as "is_supplier"
          , [INFO] as "comment"
        FROM T_SUPPLIERS
       WHERE INACTIVE_DATE IS NULL and DATE_CHANGED >= %(sync)s

 * Importing products to product.product:
      SELECT PRODUCT_CODE as "ref"
           , PRODUCT_NAME as "name"
           , 'res_partner_id_'+SUPPLIER_ID as "partner_id/id"
        FROM T_PRODUCTS
       WHERE DATE_CHANGED >= %(sync)s

Improvements ideas waiting for a contributor:
 * Allow to import many2one fields (currently not supported). Done by adding a
   second SQL sentence to get child record list?
 * Allow "import sets" that can be executed at different time intervals using
   different scheduler jobs.
 * Allow to inactivate/delete OpenERP records when not present in an SQL
   result set.

Contributors
============

* Maxime Chambreuil <maxime.chambreuil@savoirfairelinux.com>
    

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
view_import_dbtable_filter import.odbc.dbtable.filter import.odbc.dbtable search New
view_import_dbtable_form import.odbc.dbtable.form import.odbc.dbtable form New
view_import_dbtable_tree import.odbc.dbtable.tree import.odbc.dbtable tree New
Models touched (1)

New fields (0)

No new fields.

Public methods (2)
  • import_run(self, cr, uid, ids=None, context=None)
  • import_schedule(self, cr, uid, ids, context=None)