diff options
Diffstat (limited to 'oslo_db/sqlalchemy/engines.py')
-rw-r--r-- | oslo_db/sqlalchemy/engines.py | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/oslo_db/sqlalchemy/engines.py b/oslo_db/sqlalchemy/engines.py index 601be76..a9ac662 100644 --- a/oslo_db/sqlalchemy/engines.py +++ b/oslo_db/sqlalchemy/engines.py @@ -100,6 +100,24 @@ def _setup_logging(connection_debug=0): logger.setLevel(logging.WARNING) +def _vet_url(url): + if "+" not in url.drivername and not url.drivername.startswith("sqlite"): + if url.drivername.startswith("mysql"): + LOG.warning( + "URL %r does not contain a '+drivername' portion, " + "and will make use of a default driver. " + "A full dbname+drivername:// protocol is recommended. " + "For MySQL, it is strongly recommended that mysql+pymysql:// " + "be specified for maximum service compatibility", url + ) + else: + LOG.warning( + "URL %r does not contain a '+drivername' portion, " + "and will make use of a default driver. " + "A full dbname+drivername:// protocol is recommended.", url + ) + + def create_engine(sql_connection, sqlite_fk=False, mysql_sql_mode=None, idle_timeout=3600, connection_debug=0, max_pool_size=None, max_overflow=None, @@ -112,6 +130,8 @@ def create_engine(sql_connection, sqlite_fk=False, mysql_sql_mode=None, url = sqlalchemy.engine.url.make_url(sql_connection) + _vet_url(url) + engine_args = { "pool_recycle": idle_timeout, 'convert_unicode': True, |