diff --git a/base_external_dbsource_mysql/README.rst b/base_external_dbsource_mysql/README.rst index be7f889b..a0948436 100644 --- a/base_external_dbsource_mysql/README.rst +++ b/base_external_dbsource_mysql/README.rst @@ -40,7 +40,6 @@ To install this module, you need to: * Install ``libmysqlclient-dev`` package (``default-libmysqlclient-dev`` on Debian) * Install ``sqlalchemy`` and ``mysqlclient`` python libraries -* Install ``base_external_dbsource_sqlite`` Odoo module Configuration ============= diff --git a/base_external_dbsource_mysql/__manifest__.py b/base_external_dbsource_mysql/__manifest__.py index 805641c8..a2ab9578 100644 --- a/base_external_dbsource_mysql/__manifest__.py +++ b/base_external_dbsource_mysql/__manifest__.py @@ -11,7 +11,7 @@ 'website': 'https://github.com/OCA/server-backend', 'license': 'LGPL-3', 'depends': [ - 'base_external_dbsource_sqlite', + 'base_external_dbsource', ], 'external_dependencies': { 'python': [ diff --git a/base_external_dbsource_mysql/i18n/base_external_dbsource_mysql.pot b/base_external_dbsource_mysql/i18n/base_external_dbsource_mysql.pot index a11eccec..4ba76b61 100644 --- a/base_external_dbsource_mysql/i18n/base_external_dbsource_mysql.pot +++ b/base_external_dbsource_mysql/i18n/base_external_dbsource_mysql.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 11.0\n" +"Project-Id-Version: Odoo Server 12.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: <>\n" "Language-Team: \n" diff --git a/base_external_dbsource_mysql/models/base_external_dbsource.py b/base_external_dbsource_mysql/models/base_external_dbsource.py index bf701ce6..68c1c7e2 100644 --- a/base_external_dbsource_mysql/models/base_external_dbsource.py +++ b/base_external_dbsource_mysql/models/base_external_dbsource.py @@ -4,7 +4,7 @@ import logging -from odoo import api, models +from odoo import models _logger = logging.getLogger(__name__) @@ -20,6 +20,11 @@ try: except (ImportError, AssertionError): _logger.info('MySQLdb not available. Please install "mysqlclient" ' 'python package.') + try: + import sqlalchemy + except ImportError: + _logger.info('SQLAlchemy library not available. Please ' + 'install "sqlalchemy" python package.') except ImportError: _logger.info('base_external_dbsource Odoo module not found.') @@ -29,14 +34,22 @@ class BaseExternalDbsource(models.Model): _inherit = "base.external.dbsource" - @api.multi def connection_close_mysql(self, connection): return connection.close() - @api.multi def connection_open_mysql(self): - return self._connection_open_sqlalchemy() + return sqlalchemy.create_engine(self.conn_string_full).connect() - @api.multi def execute_mysql(self, sqlquery, sqlparams, metadata): - return self._execute_sqlalchemy(sqlquery, sqlparams, metadata) + # FIXME: Duplicated method in modules to be consolidated in base + rows, cols = list(), list() + for record in self: + with record.connection_open() as connection: + if sqlparams is None: + cur = connection.execute(sqlquery) + else: + cur = connection.execute(sqlquery, sqlparams) + if metadata: + cols = list(cur.keys()) + rows = [r for r in cur] + return rows, cols diff --git a/base_external_dbsource_mysql/readme/INSTALL.rst b/base_external_dbsource_mysql/readme/INSTALL.rst index ded84710..fd43d1ef 100644 --- a/base_external_dbsource_mysql/readme/INSTALL.rst +++ b/base_external_dbsource_mysql/readme/INSTALL.rst @@ -2,4 +2,3 @@ To install this module, you need to: * Install ``libmysqlclient-dev`` package (``default-libmysqlclient-dev`` on Debian) * Install ``sqlalchemy`` and ``mysqlclient`` python libraries -* Install ``base_external_dbsource_sqlite`` Odoo module diff --git a/base_external_dbsource_mysql/static/description/icon.png b/base_external_dbsource_mysql/static/description/icon.png new file mode 100644 index 00000000..3a0328b5 Binary files /dev/null and b/base_external_dbsource_mysql/static/description/icon.png differ diff --git a/base_external_dbsource_mysql/static/description/index.html b/base_external_dbsource_mysql/static/description/index.html index 44fa585d..9c98115f 100644 --- a/base_external_dbsource_mysql/static/description/index.html +++ b/base_external_dbsource_mysql/static/description/index.html @@ -3,13 +3,13 @@ - + External Database Source - MySQL