This module was written to import data from another Odoo database. The idea is that you define which models to import from the other database, and add eventual mappings for records you don't want to import.
Use cases
- merging databases
- one way sync
- aggregating management data from distributed systems
auto_awesome What this module does
AI-generated from the code · Odoo 16.0Connect Odoo to another Odoo database and import records from it, with rules for handling duplicates, field mappings and automatic scheduled imports.
This module lets administrators pull data from a second Odoo database into the current one. You set up a connection (URL, database name, user, password) and choose which models to import, optionally filtered by a domain.
- Configure import jobs under the 'Remote Odoo import' menu (Administration). Each job lists the models to import and field mappings.
- Press 'Run import' to start; the work runs as a scheduled job so you can follow progress and results on the same screen.
- Choose how duplicates are handled: skip existing records, overwrite them, or only fill empty fields.
- Field mappings let you replace remote records with existing local ones (fixed), match records by equal fields, resolve references, or generate unique values (for example for user logins).
- Records created by the import are tagged with a special external identifier linked to the remote database and remote ID, so re-imports update instead of duplicating.
- Missing required links are temporarily filled with placeholder records that are replaced or removed once the real record is imported.
- The module touches
import.odoo.database,import.odoo.database.model,import.odoo.database.fieldand extendsir.model.data.
Depends on
Menus it adds
Models and fields (4)
- ir.model.data · extends an existing modelimport_database_id (From remote database), import_database_record_id (Remote database ID)
- import.odoo.database · new modelssl, url, user, database, password, cronjob_id (Import job), duplicates, ssl_bypass, status_data (Status), status_html, null_password, cronjob_running, import_line_ids (Import models), import_field_mappings (Field mappings)
- import.odoo.database.field · new modelmodel (Model name), local_id (Local ID), model_id (Model), sequence, field_ids (Field), remote_id (Remote ID), database_id (Database), id_field_id (ID field), mapping_type (Type), model_field_id (Model field)
- import.odoo.database.model · new modeldomain, defaults, model_id (Model), sequence, database_id (Database), postprocess, extra_fields
Text generated by AI (DeepSeek) from reading the Odoo 16.0 code on GitHub; it may contain mistakes, so check the code before deciding. The module is very large and only part of the code was read. View the code on GitHub
Availability by version
Reviewed: 2026-11-03Confirmation status: 3 confirmed, 6 with no information of 9 versions.
Sources · Odoo 13.0
Confirmed on 2026-11-03 in branch 13.0 of OCA/server-tools.
terminal Installation and usage
OCA documentation · Odoo 16.0Configuration
Source · Odoo 16.0Go to Settings / Remote Odoo import / Import configurations and create a configuration.
After filling in your credentials, select models you want to import from the remote database. If you only want to import a subset of the records, add an appropriate domain.
The import will copy records of all models listed, and handle links to records of models which are not imported depending on the existing field mappings. Field mappings to local records also are a stopping condition. Without those, the import will have to create some record for all required x2x fields, which you probably don't want.
Probably you'll want to map records of model res.company, and at least the admin user.
The module doesn't import one2many fields, if you want to have those, add the model the field in question points to to the list of imported models, possibly with a domain.
If you don't fill in a remote ID, the addon will use the configured local ID for every record of the model (this way, you can for example map all users in the remote system to some import user in the current system).
For fields that have a uniqueness constraint (like res.users#login), create a field mapping if type unique, then the import will generate a unique value for this field.
For models using references with two fields (like ir.attachment), create a field mapping of type by reference and select the two fields involved. The import will transform known ids (=ids of models you import) to the respective local id, and clean out the model/id fields for unknown models/ids.
You can add custom defaults per model in case your database has different required fields than the source database. For res.partner, you'll most certainly fill in {'name': '/'} or somethign similar.
Usage
Source · Odoo 16.0To use this module, you need to:
- go to an import configuration and hit the button
Run import - be patient, this creates a cronjob which will start up to a minutes afterwards
- reload the form, as soon as the cronjob runs you'll see a field
Progressthat lets you inspect what was imported already - note that the cronjob also resets the password as soon as it has read it. So for a subsequent import, you'll have to fill it in again
- running an import a second time won't duplicate data, it should recognize records imported earlier and just update them
No verified information in OCA: Installation.
Installation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.