External Database Sources

base_external_dbsource
REPOSITORY
REPOSITORYOCA/server-backend
GIT
GIThttps://github.com/OCA/server-backend.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-backend/tree/19.0/base_external_dbsource
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYTools
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), LasLabs, Daniel Reis
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), LasLabs, Daniel Reis
COMMITTERS
COMMITTERSMaxime Chambreuil, Jesús Alan Ramos Rodríguez, Weblate, OCA-git-bot, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/server-backend
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:40:51
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module allows you to define connections to foreign databases using
ODBC, Firebird, Oracle Client or SQLAlchemy.

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
view_dbsource_form base.external.dbsource.form base.external.dbsource form New
view_dbsource_tree base.external.dbsource.list base.external.dbsource list New
Models touched (1)

New fields (9)
  • ca_certs Char
    help='Path to CA Certs file on server.'
  • client_cert Text
  • client_key Text
  • company_id Many2one → res.company
    comodel_name='res.company' default=<expr> string='Company'
  • conn_string Text
    help="\n Sample connection strings:\n - Microsoft SQL Server:\n mssql+pymssql://username:%s@server:port/dbname?charset=utf8\n - MySQL: mysql://user:%s@server:port/dbname\n - ODBC: DRIVER={FreeTDS};SERVER=server.address;Database=mydb;UID=sa\n - ORACLE: username/%s@//server.address:port/instance\n - PostgreSQL:\n dbname='template1' user='dbuser' host='localhost' port='5432' password=%s\n - SQLite: sqlite:///test.db\n - Elasticsearch: https://user:%s@localhost:9200\n " args: 'Connection string'
  • conn_string_full Text
    compute='_compute_conn_string_full' readonly=True
  • connector Selection
    help='If a connector is missing from the list, check the server log to confirm that the required components were detected.' required=True args: CONNECTORS
  • name Char
    required=True args: 'Datasource name'
  • password Char
Public methods (15)
  • change_table(self, name)
    Change the table that is used for CRUD operations
  • conn_open(self)
    It opens and returns a connection to the remote data source. This method calls adapter method of this same name, suffixed with the adapter type. Deprecate: This method has been replaced with ``connection_open``.
  • connection_close(self, connection)
    It closes the connection to the data source. This method calls adapter method of this same name, suffixed with the adapter type.
  • connection_close_postgresql(self, connection)
  • connection_open(self)
    @contextmanager
    It provides a context manager for the data source. This method calls adapter method of this same name, suffixed with the adapter type.
  • connection_open_postgresql(self)
  • connection_test(self)
    It tests the connection Raises: Validation message with the result of the connection (fail or success)
  • current_table(self)
    @property
  • execute(self, query=None, execute_params=None, metadata=False, **kwargs)
    Executes a query and returns a list of rows. "execute_params" can be a dict of values, that can be referenced in the SQL statement using "%(key)s" or, in the case of Oracle, ":key". Example: query = "SELECT * FROM mytable WHERE city = %(city)s AND date > %(dt)s" execute_params = { 'city': 'Lisbon', 'dt': datetime.datetime(2000, 12, 31), } If metadata=True, it will instead return a dict containing the rows list and the columns list, in the format: { 'cols': [ 'col_a', 'col_b', ...] , 'rows': [ (a0, b0, ...), (a1, b1, ...), ...] }
  • execute_postgresql(self, query, params, metadata)
  • remote_browse(self, record_ids, *args, **kwargs)
    It browses for and returns the records from remote by ID This method calls adapter method of this same name, suffixed with the adapter type. Args: record_ids: (list) List of remote IDs to browse. *args: Positional arguments to be passed to adapter method. **kwargs: Keyword arguments to be passed to adapter method. Returns: (iter) Iterator of record mappings that match the ID.
  • remote_create(self, vals, *args, **kwargs)
    It creates a record on the remote data source. This method calls adapter method of this same name, suffixed with the adapter type. Args: vals: (dict) Values to use for creation. *args: Positional arguments to be passed to adapter method. **kwargs: Keyword arguments to be passed to adapter method. Returns: (mapping) A mapping of the record that was created.
  • remote_delete(self, record_ids, *args, **kwargs)
    It deletes records by ID on remote This method calls adapter method of this same name, suffixed with the adapter type. Args: record_ids: (list) List of remote IDs to delete. *args: Positional arguments to be passed to adapter method. **kwargs: Keyword arguments to be passed to adapter method. Returns: (iter) Iterator of bools indicating delete status.
  • remote_search(self, query, *args, **kwargs)
    It searches the remote for the query. This method calls adapter method of this same name, suffixed with the adapter type. Args: query: (mixed) Query domain as required by the adapter. *args: Positional arguments to be passed to adapter method. **kwargs: Keyword arguments to be passed to adapter method. Returns: (iter) Iterator of record mappings that match query.
  • remote_update(self, record_ids, vals, *args, **kwargs)
    It updates the remote records with the vals This method calls adapter method of this same name, suffixed with the adapter type. Args: record_ids: (list) List of remote IDs to delete. *args: Positional arguments to be passed to adapter method. **kwargs: Keyword arguments to be passed to adapter method. Returns: (iter) Iterator of record mappings that were updated.
REPOSITORY
REPOSITORYOCA/server-backend
GIT
GIThttps://github.com/OCA/server-backend.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-backend/tree/18.0/base_external_dbsource
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYTools
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), LasLabs, Daniel Reis
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), LasLabs, Daniel Reis
COMMITTERS
COMMITTERSVíctor Martínez, OCA-git-bot, oca-ci, Hector Vior
WEBSITE
WEBSITEhttps://github.com/OCA/server-backend
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:19
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module allows you to define connections to foreign databases using
ODBC, Firebird, Oracle Client or SQLAlchemy.

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
view_dbsource_form base.external.dbsource.form base.external.dbsource form New
view_dbsource_tree base.external.dbsource.list base.external.dbsource list New
Models touched (1)

New fields (9)
  • ca_certs Char
    help='Path to CA Certs file on server.'
  • client_cert Text
  • client_key Text
  • company_id Many2one → res.company
    comodel_name='res.company' default=<expr> string='Company'
  • conn_string Text
    help="\n Sample connection strings:\n - Microsoft SQL Server:\n mssql+pymssql://username:%s@server:port/dbname?charset=utf8\n - MySQL: mysql://user:%s@server:port/dbname\n - ODBC: DRIVER={FreeTDS};SERVER=server.address;Database=mydb;UID=sa\n - ORACLE: username/%s@//server.address:port/instance\n - PostgreSQL:\n dbname='template1' user='dbuser' host='localhost' port='5432' password=%s\n - SQLite: sqlite:///test.db\n - Elasticsearch: https://user:%s@localhost:9200\n " args: 'Connection string'
  • conn_string_full Text
    compute='_compute_conn_string_full' readonly=True
  • connector Selection
    help='If a connector is missing from the list, check the server log to confirm that the required components were detected.' required=True args: CONNECTORS
  • name Char
    required=True args: 'Datasource name'
  • password Char
Public methods (14)
  • change_table(self, name)
    Change the table that is used for CRUD operations
  • conn_open(self)
    It opens and returns a connection to the remote data source. This method calls adapter method of this same name, suffixed with the adapter type. Deprecate: This method has been replaced with ``connection_open``.
  • connection_close(self, connection)
    It closes the connection to the data source. This method calls adapter method of this same name, suffixed with the adapter type.
  • connection_close_postgresql(self, connection)
  • connection_open(self)
    @contextmanager
    It provides a context manager for the data source. This method calls adapter method of this same name, suffixed with the adapter type.
  • connection_open_postgresql(self)
  • connection_test(self)
    It tests the connection Raises: Validation message with the result of the connection (fail or success)
  • execute(self, query=None, execute_params=None, metadata=False, **kwargs)
    Executes a query and returns a list of rows. "execute_params" can be a dict of values, that can be referenced in the SQL statement using "%(key)s" or, in the case of Oracle, ":key". Example: query = "SELECT * FROM mytable WHERE city = %(city)s AND date > %(dt)s" execute_params = { 'city': 'Lisbon', 'dt': datetime.datetime(2000, 12, 31), } If metadata=True, it will instead return a dict containing the rows list and the columns list, in the format: { 'cols': [ 'col_a', 'col_b', ...] , 'rows': [ (a0, b0, ...), (a1, b1, ...), ...] }
  • execute_postgresql(self, query, params, metadata)
  • remote_browse(self, record_ids, *args, **kwargs)
    It browses for and returns the records from remote by ID This method calls adapter method of this same name, suffixed with the adapter type. Args: record_ids: (list) List of remote IDs to browse. *args: Positional arguments to be passed to adapter method. **kwargs: Keyword arguments to be passed to adapter method. Returns: (iter) Iterator of record mappings that match the ID.
  • remote_create(self, vals, *args, **kwargs)
    It creates a record on the remote data source. This method calls adapter method of this same name, suffixed with the adapter type. Args: vals: (dict) Values to use for creation. *args: Positional arguments to be passed to adapter method. **kwargs: Keyword arguments to be passed to adapter method. Returns: (mapping) A mapping of the record that was created.
  • remote_delete(self, record_ids, *args, **kwargs)
    It deletes records by ID on remote This method calls adapter method of this same name, suffixed with the adapter type. Args: record_ids: (list) List of remote IDs to delete. *args: Positional arguments to be passed to adapter method. **kwargs: Keyword arguments to be passed to adapter method. Returns: (iter) Iterator of bools indicating delete status.
  • remote_search(self, query, *args, **kwargs)
    It searches the remote for the query. This method calls adapter method of this same name, suffixed with the adapter type. Args: query: (mixed) Query domain as required by the adapter. *args: Positional arguments to be passed to adapter method. **kwargs: Keyword arguments to be passed to adapter method. Returns: (iter) Iterator of record mappings that match query.
  • remote_update(self, record_ids, vals, *args, **kwargs)
    It updates the remote records with the vals This method calls adapter method of this same name, suffixed with the adapter type. Args: record_ids: (list) List of remote IDs to delete. *args: Positional arguments to be passed to adapter method. **kwargs: Keyword arguments to be passed to adapter method. Returns: (iter) Iterator of record mappings that were updated.
REPOSITORY
REPOSITORYOCA/server-backend
GIT
GIThttps://github.com/OCA/server-backend.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-backend/tree/17.0/base_external_dbsource
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYTools
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), LasLabs, Daniel Reis
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), LasLabs, Daniel Reis
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, Ángel Rivas
WEBSITE
WEBSITEhttps://github.com/OCA/server-backend
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:20:11
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module allows you to define connections to foreign databases using
ODBC, Firebird, Oracle Client or SQLAlchemy.

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
view_dbsource_form base.external.dbsource.form base.external.dbsource form New
view_dbsource_tree base.external.dbsource.tree base.external.dbsource tree New
Models touched (1)

New fields (9)
  • ca_certs Char
    help='Path to CA Certs file on server.'
  • client_cert Text
  • client_key Text
  • company_id Many2one → res.company
    comodel_name='res.company' default=<expr> string='Company'
  • conn_string Text
    help="\n Sample connection strings:\n - Microsoft SQL Server:\n mssql+pymssql://username:%s@server:port/dbname?charset=utf8\n - MySQL: mysql://user:%s@server:port/dbname\n - ODBC: DRIVER={FreeTDS};SERVER=server.address;Database=mydb;UID=sa\n - ORACLE: username/%s@//server.address:port/instance\n - PostgreSQL:\n dbname='template1' user='dbuser' host='localhost' port='5432' password=%s\n - SQLite: sqlite:///test.db\n - Elasticsearch: https://user:%s@localhost:9200\n " args: 'Connection string'
  • conn_string_full Text
    compute='_compute_conn_string_full' readonly=True
  • connector Selection
    help='If a connector is missing from the list, check the server log to confirm that the required components were detected.' required=True args: CONNECTORS
  • name Char
    required=True args: 'Datasource name'
  • password Char
Public methods (14)
  • change_table(self, name)
    Change the table that is used for CRUD operations
  • conn_open(self)
    It opens and returns a connection to the remote data source. This method calls adapter method of this same name, suffixed with the adapter type. Deprecate: This method has been replaced with ``connection_open``.
  • connection_close(self, connection)
    It closes the connection to the data source. This method calls adapter method of this same name, suffixed with the adapter type.
  • connection_close_postgresql(self, connection)
  • connection_open(self)
    @contextmanager
    It provides a context manager for the data source. This method calls adapter method of this same name, suffixed with the adapter type.
  • connection_open_postgresql(self)
  • connection_test(self)
    It tests the connection Raises: Validation message with the result of the connection (fail or success)
  • execute(self, query=None, execute_params=None, metadata=False, **kwargs)
    Executes a query and returns a list of rows. "execute_params" can be a dict of values, that can be referenced in the SQL statement using "%(key)s" or, in the case of Oracle, ":key". Example: query = "SELECT * FROM mytable WHERE city = %(city)s AND date > %(dt)s" execute_params = { 'city': 'Lisbon', 'dt': datetime.datetime(2000, 12, 31), } If metadata=True, it will instead return a dict containing the rows list and the columns list, in the format: { 'cols': [ 'col_a', 'col_b', ...] , 'rows': [ (a0, b0, ...), (a1, b1, ...), ...] }
  • execute_postgresql(self, query, params, metadata)
  • remote_browse(self, record_ids, *args, **kwargs)
    It browses for and returns the records from remote by ID This method calls adapter method of this same name, suffixed with the adapter type. Args: record_ids: (list) List of remote IDs to browse. *args: Positional arguments to be passed to adapter method. **kwargs: Keyword arguments to be passed to adapter method. Returns: (iter) Iterator of record mappings that match the ID.
  • remote_create(self, vals, *args, **kwargs)
    It creates a record on the remote data source. This method calls adapter method of this same name, suffixed with the adapter type. Args: vals: (dict) Values to use for creation. *args: Positional arguments to be passed to adapter method. **kwargs: Keyword arguments to be passed to adapter method. Returns: (mapping) A mapping of the record that was created.
  • remote_delete(self, record_ids, *args, **kwargs)
    It deletes records by ID on remote This method calls adapter method of this same name, suffixed with the adapter type. Args: record_ids: (list) List of remote IDs to delete. *args: Positional arguments to be passed to adapter method. **kwargs: Keyword arguments to be passed to adapter method. Returns: (iter) Iterator of bools indicating delete status.
  • remote_search(self, query, *args, **kwargs)
    It searches the remote for the query. This method calls adapter method of this same name, suffixed with the adapter type. Args: query: (mixed) Query domain as required by the adapter. *args: Positional arguments to be passed to adapter method. **kwargs: Keyword arguments to be passed to adapter method. Returns: (iter) Iterator of record mappings that match query.
  • remote_update(self, record_ids, vals, *args, **kwargs)
    It updates the remote records with the vals This method calls adapter method of this same name, suffixed with the adapter type. Args: record_ids: (list) List of remote IDs to delete. *args: Positional arguments to be passed to adapter method. **kwargs: Keyword arguments to be passed to adapter method. Returns: (iter) Iterator of record mappings that were updated.
REPOSITORY
REPOSITORYOCA/server-backend
GIT
GIThttps://github.com/OCA/server-backend.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-backend/tree/16.0/base_external_dbsource
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYTools
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), LasLabs, Daniel Reis
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), LasLabs, Daniel Reis
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, Andrea Cattalani
WEBSITE
WEBSITEhttps://github.com/OCA/server-backend
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:54:00
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
view_dbsource_form base.external.dbsource.form base.external.dbsource form New
view_dbsource_tree base.external.dbsource.tree base.external.dbsource tree New
Models touched (1)

New fields (9)
  • ca_certs Char
    help='Path to CA Certs file on server.'
  • client_cert Text
  • client_key Text
  • company_id Many2one → res.company
    comodel_name='res.company' default=<expr> string='Company'
  • conn_string Text
    help="\n Sample connection strings:\n - Microsoft SQL Server:\n mssql+pymssql://username:%s@server:port/dbname?charset=utf8\n - MySQL: mysql://user:%s@server:port/dbname\n - ODBC: DRIVER={FreeTDS};SERVER=server.address;Database=mydb;UID=sa\n - ORACLE: username/%s@//server.address:port/instance\n - PostgreSQL:\n dbname='template1' user='dbuser' host='localhost' port='5432' password=%s\n - SQLite: sqlite:///test.db\n - Elasticsearch: https://user:%s@localhost:9200\n " args: 'Connection string'
  • conn_string_full Text
    compute='_compute_conn_string_full' readonly=True
  • connector Selection
    help='If a connector is missing from the list, check the server log to confirm that the required components were detected.' required=True args: CONNECTORS
  • name Char
    required=True args: 'Datasource name'
  • password Char
Public methods (14)
  • change_table(self, name)
    Change the table that is used for CRUD operations
  • conn_open(self)
    It opens and returns a connection to the remote data source. This method calls adapter method of this same name, suffixed with the adapter type. Deprecate: This method has been replaced with ``connection_open``.
  • connection_close(self, connection)
    It closes the connection to the data source. This method calls adapter method of this same name, suffixed with the adapter type.
  • connection_close_postgresql(self, connection)
  • connection_open(self)
    @contextmanager
    It provides a context manager for the data source. This method calls adapter method of this same name, suffixed with the adapter type.
  • connection_open_postgresql(self)
  • connection_test(self)
    It tests the connection Raises: Validation message with the result of the connection (fail or success)
  • execute(self, query=None, execute_params=None, metadata=False, **kwargs)
    Executes a query and returns a list of rows. "execute_params" can be a dict of values, that can be referenced in the SQL statement using "%(key)s" or, in the case of Oracle, ":key". Example: query = "SELECT * FROM mytable WHERE city = %(city)s AND date > %(dt)s" execute_params = { 'city': 'Lisbon', 'dt': datetime.datetime(2000, 12, 31), } If metadata=True, it will instead return a dict containing the rows list and the columns list, in the format: { 'cols': [ 'col_a', 'col_b', ...] , 'rows': [ (a0, b0, ...), (a1, b1, ...), ...] }
  • execute_postgresql(self, query, params, metadata)
  • remote_browse(self, record_ids, *args, **kwargs)
    It browses for and returns the records from remote by ID This method calls adapter method of this same name, suffixed with the adapter type. Args: record_ids: (list) List of remote IDs to browse. *args: Positional arguments to be passed to adapter method. **kwargs: Keyword arguments to be passed to adapter method. Returns: (iter) Iterator of record mappings that match the ID.
  • remote_create(self, vals, *args, **kwargs)
    It creates a record on the remote data source. This method calls adapter method of this same name, suffixed with the adapter type. Args: vals: (dict) Values to use for creation. *args: Positional arguments to be passed to adapter method. **kwargs: Keyword arguments to be passed to adapter method. Returns: (mapping) A mapping of the record that was created.
  • remote_delete(self, record_ids, *args, **kwargs)
    It deletes records by ID on remote This method calls adapter method of this same name, suffixed with the adapter type. Args: record_ids: (list) List of remote IDs to delete. *args: Positional arguments to be passed to adapter method. **kwargs: Keyword arguments to be passed to adapter method. Returns: (iter) Iterator of bools indicating delete status.
  • remote_search(self, query, *args, **kwargs)
    It searches the remote for the query. This method calls adapter method of this same name, suffixed with the adapter type. Args: query: (mixed) Query domain as required by the adapter. *args: Positional arguments to be passed to adapter method. **kwargs: Keyword arguments to be passed to adapter method. Returns: (iter) Iterator of record mappings that match query.
  • remote_update(self, record_ids, vals, *args, **kwargs)
    It updates the remote records with the vals This method calls adapter method of this same name, suffixed with the adapter type. Args: record_ids: (list) List of remote IDs to delete. *args: Positional arguments to be passed to adapter method. **kwargs: Keyword arguments to be passed to adapter method. Returns: (iter) Iterator of record mappings that were updated.
REPOSITORY
REPOSITORYOCA/server-backend
GIT
GIThttps://github.com/OCA/server-backend.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-backend/tree/15.0/base_external_dbsource
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYTools
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), LasLabs, Daniel Reis
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), LasLabs, Daniel Reis
COMMITTERS
COMMITTERSVíctor Martínez, Weblate, OCA-git-bot, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/server-backend
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:46:43
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
view_dbsource_form base.external.dbsource.form base.external.dbsource form New
view_dbsource_tree base.external.dbsource.tree base.external.dbsource tree New
Models touched (1)

New fields (9)
  • ca_certs Char
    help='Path to CA Certs file on server.'
  • client_cert Text
  • client_key Text
  • company_id Many2one → res.company
    comodel_name='res.company' default=<expr> string='Company'
  • conn_string Text
    help="\n Sample connection strings:\n - Microsoft SQL Server:\n mssql+pymssql://username:%s@server:port/dbname?charset=utf8\n - MySQL: mysql://user:%s@server:port/dbname\n - ODBC: DRIVER={FreeTDS};SERVER=server.address;Database=mydb;UID=sa\n - ORACLE: username/%s@//server.address:port/instance\n - PostgreSQL:\n dbname='template1' user='dbuser' host='localhost' port='5432' password=%s\n - SQLite: sqlite:///test.db\n - Elasticsearch: https://user:%s@localhost:9200\n " args: 'Connection string'
  • conn_string_full Text
    compute='_compute_conn_string_full' readonly=True
  • connector Selection
    help='If a connector is missing from the list, check the server log to confirm that the required components were detected.' required=True args: CONNECTORS
  • name Char
    required=True args: 'Datasource name'
  • password Char
Public methods (14)
  • change_table(self, name)
    Change the table that is used for CRUD operations
  • conn_open(self)
    It opens and returns a connection to the remote data source. This method calls adapter method of this same name, suffixed with the adapter type. Deprecate: This method has been replaced with ``connection_open``.
  • connection_close(self, connection)
    It closes the connection to the data source. This method calls adapter method of this same name, suffixed with the adapter type.
  • connection_close_postgresql(self, connection)
  • connection_open(self)
    @contextmanager
    It provides a context manager for the data source. This method calls adapter method of this same name, suffixed with the adapter type.
  • connection_open_postgresql(self)
  • connection_test(self)
    It tests the connection Raises: Validation message with the result of the connection (fail or success)
  • execute(self, query=None, execute_params=None, metadata=False, **kwargs)
    Executes a query and returns a list of rows. "execute_params" can be a dict of values, that can be referenced in the SQL statement using "%(key)s" or, in the case of Oracle, ":key". Example: query = "SELECT * FROM mytable WHERE city = %(city)s AND date > %(dt)s" execute_params = { 'city': 'Lisbon', 'dt': datetime.datetime(2000, 12, 31), } If metadata=True, it will instead return a dict containing the rows list and the columns list, in the format: { 'cols': [ 'col_a', 'col_b', ...] , 'rows': [ (a0, b0, ...), (a1, b1, ...), ...] }
  • execute_postgresql(self, query, params, metadata)
  • remote_browse(self, record_ids, *args, **kwargs)
    It browses for and returns the records from remote by ID This method calls adapter method of this same name, suffixed with the adapter type. Args: record_ids: (list) List of remote IDs to browse. *args: Positional arguments to be passed to adapter method. **kwargs: Keyword arguments to be passed to adapter method. Returns: (iter) Iterator of record mappings that match the ID.
  • remote_create(self, vals, *args, **kwargs)
    It creates a record on the remote data source. This method calls adapter method of this same name, suffixed with the adapter type. Args: vals: (dict) Values to use for creation. *args: Positional arguments to be passed to adapter method. **kwargs: Keyword arguments to be passed to adapter method. Returns: (mapping) A mapping of the record that was created.
  • remote_delete(self, record_ids, *args, **kwargs)
    It deletes records by ID on remote This method calls adapter method of this same name, suffixed with the adapter type. Args: record_ids: (list) List of remote IDs to delete. *args: Positional arguments to be passed to adapter method. **kwargs: Keyword arguments to be passed to adapter method. Returns: (iter) Iterator of bools indicating delete status.
  • remote_search(self, query, *args, **kwargs)
    It searches the remote for the query. This method calls adapter method of this same name, suffixed with the adapter type. Args: query: (mixed) Query domain as required by the adapter. *args: Positional arguments to be passed to adapter method. **kwargs: Keyword arguments to be passed to adapter method. Returns: (iter) Iterator of record mappings that match query.
  • remote_update(self, record_ids, vals, *args, **kwargs)
    It updates the remote records with the vals This method calls adapter method of this same name, suffixed with the adapter type. Args: record_ids: (list) List of remote IDs to delete. *args: Positional arguments to be passed to adapter method. **kwargs: Keyword arguments to be passed to adapter method. Returns: (iter) Iterator of record mappings that were updated.
REPOSITORY
REPOSITORYOCA/server-backend
GIT
GIThttps://github.com/OCA/server-backend.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-backend/tree/14.0/base_external_dbsource
VERSION
VERSION 1.0.2
CATEGORY
CATEGORYTools
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), LasLabs, Daniel Reis
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), LasLabs, Daniel Reis
COMMITTERS
COMMITTERSEnric Tobella, Víctor Martínez, oca-travis, Weblate, OCA-git-bot, oca-ci, bilbonet
WEBSITE
WEBSITEhttps://github.com/OCA/server-backend
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:41:12
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
view_dbsource_form base.external.dbsource.form base.external.dbsource form New
view_dbsource_tree base.external.dbsource.tree base.external.dbsource tree New
Models touched (1)

New fields (9)
  • ca_certs Char
    help='Path to CA Certs file on server.'
  • client_cert Text
  • client_key Text
  • company_id Many2one → res.company
    comodel_name='res.company' default=<expr> string='Company'
  • conn_string Text
    help="\n Sample connection strings:\n - Microsoft SQL Server:\n mssql+pymssql://username:%s@server:port/dbname?charset=utf8\n - MySQL: mysql://user:%s@server:port/dbname\n - ODBC: DRIVER={FreeTDS};SERVER=server.address;Database=mydb;UID=sa\n - ORACLE: username/%s@//server.address:port/instance\n - PostgreSQL:\n dbname='template1' user='dbuser' host='localhost' port='5432' password=%s\n - SQLite: sqlite:///test.db\n - Elasticsearch: https://user:%s@localhost:9200\n " args: 'Connection string'
  • conn_string_full Text
    compute='_compute_conn_string_full' readonly=True
  • connector Selection
    help='If a connector is missing from the list, check the server log to confirm that the required components were detected.' required=True args: CONNECTORS, 'Connector'
  • name Char
    required=True args: 'Datasource name'
  • password Char
    args: 'Password'
Public methods (14)
  • change_table(self, name)
    Change the table that is used for CRUD operations
  • conn_open(self)
    It opens and returns a connection to the remote data source. This method calls adapter method of this same name, suffixed with the adapter type. Deprecate: This method has been replaced with ``connection_open``.
  • connection_close(self, connection)
    It closes the connection to the data source. This method calls adapter method of this same name, suffixed with the adapter type.
  • connection_close_postgresql(self, connection)
  • connection_open(self)
    @contextmanager
    It provides a context manager for the data source. This method calls adapter method of this same name, suffixed with the adapter type.
  • connection_open_postgresql(self)
  • connection_test(self)
    It tests the connection Raises: Validation message with the result of the connection (fail or success)
  • execute(self, query=None, execute_params=None, metadata=False, **kwargs)
    Executes a query and returns a list of rows. "execute_params" can be a dict of values, that can be referenced in the SQL statement using "%(key)s" or, in the case of Oracle, ":key". Example: query = "SELECT * FROM mytable WHERE city = %(city)s AND date > %(dt)s" execute_params = { 'city': 'Lisbon', 'dt': datetime.datetime(2000, 12, 31), } If metadata=True, it will instead return a dict containing the rows list and the columns list, in the format: { 'cols': [ 'col_a', 'col_b', ...] , 'rows': [ (a0, b0, ...), (a1, b1, ...), ...] }
  • execute_postgresql(self, query, params, metadata)
  • remote_browse(self, record_ids, *args, **kwargs)
    It browses for and returns the records from remote by ID This method calls adapter method of this same name, suffixed with the adapter type. Args: record_ids: (list) List of remote IDs to browse. *args: Positional arguments to be passed to adapter method. **kwargs: Keyword arguments to be passed to adapter method. Returns: (iter) Iterator of record mappings that match the ID.
  • remote_create(self, vals, *args, **kwargs)
    It creates a record on the remote data source. This method calls adapter method of this same name, suffixed with the adapter type. Args: vals: (dict) Values to use for creation. *args: Positional arguments to be passed to adapter method. **kwargs: Keyword arguments to be passed to adapter method. Returns: (mapping) A mapping of the record that was created.
  • remote_delete(self, record_ids, *args, **kwargs)
    It deletes records by ID on remote This method calls adapter method of this same name, suffixed with the adapter type. Args: record_ids: (list) List of remote IDs to delete. *args: Positional arguments to be passed to adapter method. **kwargs: Keyword arguments to be passed to adapter method. Returns: (iter) Iterator of bools indicating delete status.
  • remote_search(self, query, *args, **kwargs)
    It searches the remote for the query. This method calls adapter method of this same name, suffixed with the adapter type. Args: query: (mixed) Query domain as required by the adapter. *args: Positional arguments to be passed to adapter method. **kwargs: Keyword arguments to be passed to adapter method. Returns: (iter) Iterator of record mappings that match query.
  • remote_update(self, record_ids, vals, *args, **kwargs)
    It updates the remote records with the vals This method calls adapter method of this same name, suffixed with the adapter type. Args: record_ids: (list) List of remote IDs to delete. *args: Positional arguments to be passed to adapter method. **kwargs: Keyword arguments to be passed to adapter method. Returns: (iter) Iterator of record mappings that were updated.
REPOSITORY
REPOSITORYOCA/server-backend
GIT
GIThttps://github.com/OCA/server-backend.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-backend/tree/13.0/base_external_dbsource
VERSION
VERSION 2.0.1
CATEGORY
CATEGORYTools
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), LasLabs, Daniel Reis
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), LasLabs, Daniel Reis
COMMITTERS
COMMITTERSPedro M. Baeza, OCA Transbot, JordiMForgeFlow, Sergio Teruel, oca-travis, Weblate, OCA-git-bot
WEBSITE
WEBSITEhttps://github.com/OCA/server-backend
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:34:20
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
view_dbsource_form base.external.dbsource.form base.external.dbsource form New
view_dbsource_tree base.external.dbsource.tree base.external.dbsource tree New
Models touched (1)

New fields (9)
  • ca_certs Char
    help='Path to CA Certs file on server.'
  • client_cert Text
  • client_key Text
  • company_id Many2one → res.company
    comodel_name='res.company' default=<expr> string='Company'
  • conn_string Text
    help="\n Sample connection strings:\n - Microsoft SQL Server:\n mssql+pymssql://username:%s@server:port/dbname?charset=utf8\n - MySQL: mysql://user:%s@server:port/dbname\n - ODBC: DRIVER={FreeTDS};SERVER=server.address;Database=mydb;UID=sa\n - ORACLE: username/%s@//server.address:port/instance\n - PostgreSQL:\n dbname='template1' user='dbuser' host='localhost' port='5432' password=%s\n - SQLite: sqlite:///test.db\n - Elasticsearch: https://user:%s@localhost:9200\n " args: 'Connection string'
  • conn_string_full Text
    compute='_compute_conn_string_full' readonly=True
  • connector Selection
    help='If a connector is missing from the list, check the server log to confirm that the required components were detected.' required=True args: CONNECTORS, 'Connector'
  • name Char
    required=True size=64 args: 'Datasource name'
  • password Char
    size=40 args: 'Password'
Public methods (14)
  • change_table(self, name)
    Change the table that is used for CRUD operations
  • conn_open(self)
    It opens and returns a connection to the remote data source. This method calls adapter method of this same name, suffixed with the adapter type. Deprecate: This method has been replaced with ``connection_open``.
  • connection_close(self, connection)
    It closes the connection to the data source. This method calls adapter method of this same name, suffixed with the adapter type.
  • connection_close_postgresql(self, connection)
  • connection_open(self)
    @contextmanager
    It provides a context manager for the data source. This method calls adapter method of this same name, suffixed with the adapter type.
  • connection_open_postgresql(self)
  • connection_test(self)
    It tests the connection Raises: ConnectionSuccessError: On connection success ConnectionFailedError: On connection failed
  • execute(self, query=None, execute_params=None, metadata=False, **kwargs)
    Executes a query and returns a list of rows. "execute_params" can be a dict of values, that can be referenced in the SQL statement using "%(key)s" or, in the case of Oracle, ":key". Example: query = "SELECT * FROM mytable WHERE city = %(city)s AND date > %(dt)s" execute_params = { 'city': 'Lisbon', 'dt': datetime.datetime(2000, 12, 31), } If metadata=True, it will instead return a dict containing the rows list and the columns list, in the format: { 'cols': [ 'col_a', 'col_b', ...] , 'rows': [ (a0, b0, ...), (a1, b1, ...), ...] }
  • execute_postgresql(self, query, params, metadata)
  • remote_browse(self, record_ids, *args, **kwargs)
    It browses for and returns the records from remote by ID This method calls adapter method of this same name, suffixed with the adapter type. Args: record_ids: (list) List of remote IDs to browse. *args: Positional arguments to be passed to adapter method. **kwargs: Keyword arguments to be passed to adapter method. Returns: (iter) Iterator of record mappings that match the ID.
  • remote_create(self, vals, *args, **kwargs)
    It creates a record on the remote data source. This method calls adapter method of this same name, suffixed with the adapter type. Args: vals: (dict) Values to use for creation. *args: Positional arguments to be passed to adapter method. **kwargs: Keyword arguments to be passed to adapter method. Returns: (mapping) A mapping of the record that was created.
  • remote_delete(self, record_ids, *args, **kwargs)
    It deletes records by ID on remote This method calls adapter method of this same name, suffixed with the adapter type. Args: record_ids: (list) List of remote IDs to delete. *args: Positional arguments to be passed to adapter method. **kwargs: Keyword arguments to be passed to adapter method. Returns: (iter) Iterator of bools indicating delete status.
  • remote_search(self, query, *args, **kwargs)
    It searches the remote for the query. This method calls adapter method of this same name, suffixed with the adapter type. Args: query: (mixed) Query domain as required by the adapter. *args: Positional arguments to be passed to adapter method. **kwargs: Keyword arguments to be passed to adapter method. Returns: (iter) Iterator of record mappings that match query.
  • remote_update(self, record_ids, vals, *args, **kwargs)
    It updates the remote records with the vals This method calls adapter method of this same name, suffixed with the adapter type. Args: record_ids: (list) List of remote IDs to delete. *args: Positional arguments to be passed to adapter method. **kwargs: Keyword arguments to be passed to adapter method. Returns: (iter) Iterator of record mappings that were updated.
REPOSITORY
REPOSITORYOCA/server-backend
GIT
GIThttps://github.com/OCA/server-backend.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-backend/tree/12.0/base_external_dbsource
VERSION
VERSION 1.1.1
CATEGORY
CATEGORYTools
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), LasLabs, Daniel Reis
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), LasLabs, Daniel Reis
COMMITTERS
COMMITTERSdavid, OCA Transbot, Sergio Teruel, oca-travis, Weblate, OCA-git-bot, Adrià Gil Sorribes, hugues de keyzer
WEBSITE
WEBSITEhttps://github.com/OCA/server-backend
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:29:25
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
view_dbsource_form base.external.dbsource.form base.external.dbsource form New
view_dbsource_tree base.external.dbsource.tree base.external.dbsource tree New
Models touched (1)

New fields (9)
  • ca_certs Char
    help='Path to CA Certs file on server.'
  • client_cert Text
  • client_key Text
  • company_id Many2one → res.company
    comodel_name='res.company' default=<expr> string='Company'
  • conn_string Text
    help="\n Sample connection strings:\n - Microsoft SQL Server:\n mssql+pymssql://username:%s@server:port/dbname?charset=utf8\n - MySQL: mysql://user:%s@server:port/dbname\n - ODBC: DRIVER={FreeTDS};SERVER=server.address;Database=mydb;UID=sa\n - ORACLE: username/%s@//server.address:port/instance\n - PostgreSQL:\n dbname='template1' user='dbuser' host='localhost' port='5432' password=%s\n - SQLite: sqlite:///test.db\n - Elasticsearch: https://user:%s@localhost:9200\n " args: 'Connection string'
  • conn_string_full Text
    compute='_compute_conn_string_full' readonly=True
  • connector Selection
    help='If a connector is missing from the list, check the server log to confirm that the required components were detected.' required=True args: CONNECTORS, 'Connector'
  • name Char
    required=True size=64 args: 'Datasource name'
  • password Char
    size=40 args: 'Password'
Public methods (14)
  • change_table(self, name)
    @api.multi
    Change the table that is used for CRUD operations
  • conn_open(self)
    @api.multi
    It opens and returns a connection to the remote data source. This method calls adapter method of this same name, suffixed with the adapter type. Deprecate: This method has been replaced with ``connection_open``.
  • connection_close(self, connection)
    @api.multi
    It closes the connection to the data source. This method calls adapter method of this same name, suffixed with the adapter type.
  • connection_close_postgresql(self, connection)
  • connection_open(self)
    @api.multi@contextmanager
    It provides a context manager for the data source. This method calls adapter method of this same name, suffixed with the adapter type.
  • connection_open_postgresql(self)
  • connection_test(self)
    @api.multi
    It tests the connection Raises: ConnectionSuccessError: On connection success ConnectionFailedError: On connection failed
  • execute(self, query=None, execute_params=None, metadata=False, **kwargs)
    @api.multi
    Executes a query and returns a list of rows. "execute_params" can be a dict of values, that can be referenced in the SQL statement using "%(key)s" or, in the case of Oracle, ":key". Example: query = "SELECT * FROM mytable WHERE city = %(city)s AND date > %(dt)s" execute_params = { 'city': 'Lisbon', 'dt': datetime.datetime(2000, 12, 31), } If metadata=True, it will instead return a dict containing the rows list and the columns list, in the format: { 'cols': [ 'col_a', 'col_b', ...] , 'rows': [ (a0, b0, ...), (a1, b1, ...), ...] }
  • execute_postgresql(self, query, params, metadata)
  • remote_browse(self, record_ids, *args, **kwargs)
    @api.multi
    It browses for and returns the records from remote by ID This method calls adapter method of this same name, suffixed with the adapter type. Args: record_ids: (list) List of remote IDs to browse. *args: Positional arguments to be passed to adapter method. **kwargs: Keyword arguments to be passed to adapter method. Returns: (iter) Iterator of record mappings that match the ID.
  • remote_create(self, vals, *args, **kwargs)
    @api.multi
    It creates a record on the remote data source. This method calls adapter method of this same name, suffixed with the adapter type. Args: vals: (dict) Values to use for creation. *args: Positional arguments to be passed to adapter method. **kwargs: Keyword arguments to be passed to adapter method. Returns: (mapping) A mapping of the record that was created.
  • remote_delete(self, record_ids, *args, **kwargs)
    @api.multi
    It deletes records by ID on remote This method calls adapter method of this same name, suffixed with the adapter type. Args: record_ids: (list) List of remote IDs to delete. *args: Positional arguments to be passed to adapter method. **kwargs: Keyword arguments to be passed to adapter method. Returns: (iter) Iterator of bools indicating delete status.
  • remote_search(self, query, *args, **kwargs)
    @api.multi
    It searches the remote for the query. This method calls adapter method of this same name, suffixed with the adapter type. Args: query: (mixed) Query domain as required by the adapter. *args: Positional arguments to be passed to adapter method. **kwargs: Keyword arguments to be passed to adapter method. Returns: (iter) Iterator of record mappings that match query.
  • remote_update(self, record_ids, vals, *args, **kwargs)
    @api.multi
    It updates the remote records with the vals This method calls adapter method of this same name, suffixed with the adapter type. Args: record_ids: (list) List of remote IDs to delete. *args: Positional arguments to be passed to adapter method. **kwargs: Keyword arguments to be passed to adapter method. Returns: (iter) Iterator of record mappings that were updated.
REPOSITORY
REPOSITORYOCA/server-backend
GIT
GIThttps://github.com/OCA/server-backend.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-backend/tree/11.0/base_external_dbsource
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYTools
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), LasLabs, Daniel Reis
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), LasLabs, Daniel Reis
COMMITTERS
COMMITTERSPedro M. Baeza, GitHub, Jairo Llopis, OCA Transbot, Sergio Teruel, oca-travis, Weblate, OCA-git-bot, Sergio Teruel Albert, OCA Git Bot
WEBSITE
WEBSITEhttps://github.com/OCA/server-backend
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:24:02
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
view_dbsource_form base.external.dbsource.form base.external.dbsource form New
view_dbsource_tree base.external.dbsource.tree base.external.dbsource tree New
Models touched (1)

New fields (9)
  • ca_certs Char
    help='Path to CA Certs file on server.'
  • client_cert Text
  • client_key Text
  • company_id Many2one → res.company
    comodel_name='res.company' default=<expr> string='Company'
  • conn_string Text
    help="\n Sample connection strings:\n - Microsoft SQL Server:\n mssql+pymssql://username:%s@server:port/dbname?charset=utf8\n - MySQL: mysql://user:%s@server:port/dbname\n - ODBC: DRIVER={FreeTDS};SERVER=server.address;Database=mydb;UID=sa\n - ORACLE: username/%s@//server.address:port/instance\n - PostgreSQL:\n dbname='template1' user='dbuser' host='localhost' port='5432' password=%s\n - SQLite: sqlite:///test.db\n - Elasticsearch: https://user:%s@localhost:9200\n " args: 'Connection string'
  • conn_string_full Text
    compute='_compute_conn_string_full' readonly=True
  • connector Selection
    help='If a connector is missing from the list, check the server log to confirm that the required components were detected.' required=True args: CONNECTORS, 'Connector'
  • name Char
    required=True size=64 args: 'Datasource name'
  • password Char
    size=40 args: 'Password'
Public methods (14)
  • change_table(self, name)
    @api.multi
    Change the table that is used for CRUD operations
  • conn_open(self)
    @api.multi
    It opens and returns a connection to the remote data source. This method calls adapter method of this same name, suffixed with the adapter type. Deprecate: This method has been replaced with ``connection_open``.
  • connection_close(self, connection)
    @api.multi
    It closes the connection to the data source. This method calls adapter method of this same name, suffixed with the adapter type.
  • connection_close_postgresql(self, connection)
  • connection_open(self)
    @api.multi@contextmanager
    It provides a context manager for the data source. This method calls adapter method of this same name, suffixed with the adapter type.
  • connection_open_postgresql(self)
  • connection_test(self)
    @api.multi
    It tests the connection Raises: ConnectionSuccessError: On connection success ConnectionFailedError: On connection failed
  • execute(self, query=None, execute_params=None, metadata=False, **kwargs)
    @api.multi
    Executes a query and returns a list of rows. "execute_params" can be a dict of values, that can be referenced in the SQL statement using "%(key)s" or, in the case of Oracle, ":key". Example: query = "SELECT * FROM mytable WHERE city = %(city)s AND date > %(dt)s" execute_params = { 'city': 'Lisbon', 'dt': datetime.datetime(2000, 12, 31), } If metadata=True, it will instead return a dict containing the rows list and the columns list, in the format: { 'cols': [ 'col_a', 'col_b', ...] , 'rows': [ (a0, b0, ...), (a1, b1, ...), ...] }
  • execute_postgresql(self, query, params, metadata)
  • remote_browse(self, record_ids, *args, **kwargs)
    @api.multi
    It browses for and returns the records from remote by ID This method calls adapter method of this same name, suffixed with the adapter type. Args: record_ids: (list) List of remote IDs to browse. *args: Positional arguments to be passed to adapter method. **kwargs: Keyword arguments to be passed to adapter method. Returns: (iter) Iterator of record mappings that match the ID.
  • remote_create(self, vals, *args, **kwargs)
    @api.multi
    It creates a record on the remote data source. This method calls adapter method of this same name, suffixed with the adapter type. Args: vals: (dict) Values to use for creation. *args: Positional arguments to be passed to adapter method. **kwargs: Keyword arguments to be passed to adapter method. Returns: (mapping) A mapping of the record that was created.
  • remote_delete(self, record_ids, *args, **kwargs)
    @api.multi
    It deletes records by ID on remote This method calls adapter method of this same name, suffixed with the adapter type. Args: record_ids: (list) List of remote IDs to delete. *args: Positional arguments to be passed to adapter method. **kwargs: Keyword arguments to be passed to adapter method. Returns: (iter) Iterator of bools indicating delete status.
  • remote_search(self, query, *args, **kwargs)
    @api.multi
    It searches the remote for the query. This method calls adapter method of this same name, suffixed with the adapter type. Args: query: (mixed) Query domain as required by the adapter. *args: Positional arguments to be passed to adapter method. **kwargs: Keyword arguments to be passed to adapter method. Returns: (iter) Iterator of record mappings that match query.
  • remote_update(self, record_ids, vals, *args, **kwargs)
    @api.multi
    It updates the remote records with the vals This method calls adapter method of this same name, suffixed with the adapter type. Args: record_ids: (list) List of remote IDs to delete. *args: Positional arguments to be passed to adapter method. **kwargs: Keyword arguments to be passed to adapter method. Returns: (iter) Iterator of record mappings that were updated.
REPOSITORY
REPOSITORYOCA/server-tools
GIT
GIThttps://github.com/OCA/server-tools.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-tools/tree/10.0/base_external_dbsource
VERSION
VERSION 2.0.0
CATEGORY
CATEGORYTools
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), LasLabs, Daniel Reis
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), LasLabs, Daniel Reis
COMMITTERS
COMMITTERSMaxime Chambreuil, Pedro M. Baeza, GitHub, OCA Transbot, Dave Lasley, oca-travis, Weblate, Michell Stuttgart
WEBSITE
WEBSITEhttps://github.com/OCA/server-tools
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:20:00
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
view_dbsource_form base.external.dbsource.form base.external.dbsource form New
view_dbsource_tree base.external.dbsource.tree base.external.dbsource tree New
Models touched (1)

New fields (8)
  • ca_certs Char
    help='Path to CA Certs file on server.'
  • client_cert Text
  • client_key Text
  • conn_string Text
    help="\n Sample connection strings:\n - Microsoft SQL Server:\n mssql+pymssql://username:%s@server:port/dbname?charset=utf8\n - MySQL: mysql://user:%s@server:port/dbname\n - ODBC: DRIVER={FreeTDS};SERVER=server.address;Database=mydb;UID=sa\n - ORACLE: username/%s@//server.address:port/instance\n - PostgreSQL:\n dbname='template1' user='dbuser' host='localhost' port='5432' password=%s\n - SQLite: sqlite:///test.db\n - Elasticsearch: https://user:%s@localhost:9200\n " args: 'Connection string'
  • conn_string_full Text
    compute='_compute_conn_string_full' readonly=True
  • connector Selection
    help='If a connector is missing from the list, check the server log to confirm that the required components were detected.' required=True args: CONNECTORS, 'Connector'
  • name Char
    required=True size=64 args: 'Datasource name'
  • password Char
    size=40 args: 'Password'
Public methods (14)
  • change_table(self, name)
    @api.multi
    Change the table that is used for CRUD operations
  • conn_open(self)
    @api.multi
    It opens and returns a connection to the remote data source. This method calls adapter method of this same name, suffixed with the adapter type. Deprecate: This method has been replaced with ``connection_open``.
  • connection_close(self, connection)
    @api.multi
    It closes the connection to the data source. This method calls adapter method of this same name, suffixed with the adapter type.
  • connection_close_postgresql(self, connection)
  • connection_open(self)
    @api.multi@contextmanager
    It provides a context manager for the data source. This method calls adapter method of this same name, suffixed with the adapter type.
  • connection_open_postgresql(self)
  • connection_test(self)
    @api.multi
    It tests the connection Raises: ConnectionSuccessError: On connection success ConnectionFailedError: On connection failed
  • execute(self, query=None, execute_params=None, metadata=False, **kwargs)
    @api.multi
    Executes a query and returns a list of rows. "execute_params" can be a dict of values, that can be referenced in the SQL statement using "%(key)s" or, in the case of Oracle, ":key". Example: query = "SELECT * FROM mytable WHERE city = %(city)s AND date > %(dt)s" execute_params = { 'city': 'Lisbon', 'dt': datetime.datetime(2000, 12, 31), } If metadata=True, it will instead return a dict containing the rows list and the columns list, in the format: { 'cols': [ 'col_a', 'col_b', ...] , 'rows': [ (a0, b0, ...), (a1, b1, ...), ...] }
  • execute_postgresql(self, query, params, metadata)
  • remote_browse(self, record_ids, *args, **kwargs)
    @api.multi
    It browses for and returns the records from remote by ID This method calls adapter method of this same name, suffixed with the adapter type. Args: record_ids: (list) List of remote IDs to browse. *args: Positional arguments to be passed to adapter method. **kwargs: Keyword arguments to be passed to adapter method. Returns: (iter) Iterator of record mappings that match the ID.
  • remote_create(self, vals, *args, **kwargs)
    @api.multi
    It creates a record on the remote data source. This method calls adapter method of this same name, suffixed with the adapter type. Args: vals: (dict) Values to use for creation. *args: Positional arguments to be passed to adapter method. **kwargs: Keyword arguments to be passed to adapter method. Returns: (mapping) A mapping of the record that was created.
  • remote_delete(self, record_ids, *args, **kwargs)
    @api.multi
    It deletes records by ID on remote This method calls adapter method of this same name, suffixed with the adapter type. Args: record_ids: (list) List of remote IDs to delete. *args: Positional arguments to be passed to adapter method. **kwargs: Keyword arguments to be passed to adapter method. Returns: (iter) Iterator of bools indicating delete status.
  • remote_search(self, query, *args, **kwargs)
    @api.multi
    It searches the remote for the query. This method calls adapter method of this same name, suffixed with the adapter type. Args: query: (mixed) Query domain as required by the adapter. *args: Positional arguments to be passed to adapter method. **kwargs: Keyword arguments to be passed to adapter method. Returns: (iter) Iterator of record mappings that match query.
  • remote_update(self, record_ids, vals, *args, **kwargs)
    @api.multi
    It updates the remote records with the vals This method calls adapter method of this same name, suffixed with the adapter type. Args: record_ids: (list) List of remote IDs to delete. *args: Positional arguments to be passed to adapter method. **kwargs: Keyword arguments to be passed to adapter method. Returns: (iter) Iterator of record mappings that were updated.
REPOSITORY
REPOSITORYOCA/server-tools
GIT
GIThttps://github.com/OCA/server-tools.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-tools/tree/9.0/base_external_dbsource
VERSION
VERSION 1.0.1
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
COMMITTERSMaxime Chambreuil, Pedro M. Baeza, Daniel Reis, OCA Transbot, oca-travis, Weblate
WEBSITE
WEBSITEhttps://github.com/OCA/server-tools
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:15:23
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
view_dbsource_form base.external.dbsource.form base.external.dbsource form New
view_dbsource_tree base.external.dbsource.tree base.external.dbsource tree New
Models touched (1)

New fields (4)
  • conn_string Text
    help="\n Sample connection strings:\n - Microsoft SQL Server:\n mssql+pymssql://username:%s@server:port/dbname?charset=utf8\n - MySQL: mysql://user:%s@server:port/dbname\n - ODBC: DRIVER={FreeTDS};SERVER=server.address;Database=mydb;UID=sa\n - ORACLE: username/%s@//server.address:port/instance\n - PostgreSQL:\n dbname='template1' user='dbuser' host='localhost' port='5432' password=%s\n - SQLite: sqlite:///test.db\n " args: 'Connection string'
  • connector Selection
    help='If a connector is missing from the list, check the server log to confirm that the required components were detected.' required=True args: CONNECTORS, 'Connector'
  • name Char
    required=True size=64 args: 'Datasource name'
  • password Char
    size=40 args: 'Password'
Public methods (3)
  • conn_open(self)
    @api.multi
    The connection is open here.
  • connection_test(self)
    @api.multi
    Test of connection.
  • execute(self, sqlquery, sqlparams=None, metadata=False, context=None)
    @api.multi
    Executes SQL and returns a list of rows. "sqlparams" can be a dict of values, that can be referenced in the SQL statement using "%(key)s" or, in the case of Oracle, ":key". Example: sqlquery = "select * from mytable where city = %(city)s and date > %(dt)s" params = {'city': 'Lisbon', 'dt': datetime.datetime(2000, 12, 31)} If metadata=True, it will instead return a dict containing the rows list and the columns list, in the format: { 'cols': [ 'col_a', 'col_b', ...] , 'rows': [ (a0, b0, ...), (a1, b1, ...), ...] }
REPOSITORY
REPOSITORYOCA/server-tools
GIT
GIThttps://github.com/OCA/server-tools.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-tools/tree/8.0/base_external_dbsource
VERSION
VERSION 1.3.0
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, Alexandre Fayolle, Sandy Carter, Holger Brunn, GitHub, Stéphane Bidoul (ACSONE), OCA Transbot, Sandy, oca-travis, Weblate, lauris
WEBSITE
WEBSITEhttp://launchpad.net/addons-tko
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:11:25
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module allows you to define connections to foreign databases using ODBC,
Oracle Client or SQLAlchemy.

Database sources can be configured in Settings > Configuration -> Data sources.

Depending on the database, you need:
 * to install unixodbc and python-pyodbc packages to use ODBC connections.
 * to install FreeTDS driver (tdsodbc package) and configure it through ODBC to
   connect to Microsoft SQL Server.
 * to install and configure Oracle Instant Client and cx_Oracle python library
   to connect to Oracle.

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

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

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
view_dbsource_form base.external.dbsource.form base.external.dbsource form New
view_dbsource_tree base.external.dbsource.tree base.external.dbsource tree New
Models touched (1)

New fields (0)

No new fields.

Public methods (3)
  • conn_open(self, cr, uid, id1)
  • connection_test(self, cr, uid, ids, context=None)
  • execute(self, cr, uid, ids, sqlquery, sqlparams=None, metadata=False, context=None)
    Executes SQL and returns a list of rows. "sqlparams" can be a dict of values, that can be referenced in the SQL statement using "%(key)s" or, in the case of Oracle, ":key". Example: sqlquery = "select * from mytable where city = %(city)s and date > %(dt)s" params = {'city': 'Lisbon', 'dt': datetime.datetime(2000, 12, 31)} If metadata=True, it will instead return a dict containing the rows list and the columns list, in the format: { 'cols': [ 'col_a', 'col_b', ...] , 'rows': [ (a0, b0, ...), (a1, b1, ...), ...] }
REPOSITORY
REPOSITORYOCA/server-tools
GIT
GIThttps://github.com/OCA/server-tools.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-tools/tree/7.0/base_external_dbsource
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, Sandy Carter, Maxime Chambreuil, Pedro M. Baeza, Daniel Reis, webtec
WEBSITE
WEBSITEhttp://launchpad.net/addons-tko
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:07:15
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module allows you to define connections to foreign databases using ODBC,
Oracle Client or SQLAlchemy.

Database sources can be configured in Settings > Configuration -> Data sources.

Depending on the database, you need:
 * to install unixodbc and python-pyodbc packages to use ODBC connections.
 * to install FreeTDS driver (tdsodbc package) and configure it through ODBC to
   connect to Microsoft SQL Server.
 * to install and configure Oracle Instant Client and cx_Oracle python library
   to connect to Oracle.

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

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

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
view_dbsource_form base.external.dbsource.form base.external.dbsource form New
view_dbsource_tree base.external.dbsource.tree base.external.dbsource tree New
Models touched (1)

New fields (0)

No new fields.

Public methods (3)
  • conn_open(self, cr, uid, id1)
  • connection_test(self, cr, uid, ids, context=None)
  • execute(self, cr, uid, ids, sqlquery, sqlparams=None, metadata=False, context=None)
    Executes SQL and returns a list of rows. "sqlparams" can be a dict of values, that can be referenced in the SQL statement using "%(key)s" or, in the case of Oracle, ":key". Example: sqlquery = "select * from mytable where city = %(city)s and date > %(dt)s" params = {'city': 'Lisbon', 'dt': datetime.datetime(2000, 12, 31)} If metadata=True, it will instead return a dict containing the rows list and the columns list, in the format: { 'cols': [ 'col_a', 'col_b', ...] , 'rows': [ (a0, b0, ...), (a1, b1, ...), ...] }