Merge "Only enable MySQL TRADITIONAL mode if we're running against MySQL"

This commit is contained in:
Jenkins 2014-02-04 13:43:15 +00:00 committed by Gerrit Code Review
commit 345dd3ff20
1 changed files with 10 additions and 7 deletions

View File

@ -737,13 +737,16 @@ def create_engine(sql_connection, sqlite_fk=False,
if engine.name in ['mysql', 'ibm_db_sa']: if engine.name in ['mysql', 'ibm_db_sa']:
callback = functools.partial(_ping_listener, engine) callback = functools.partial(_ping_listener, engine)
sqlalchemy.event.listen(engine, 'checkout', callback) sqlalchemy.event.listen(engine, 'checkout', callback)
if mysql_traditional_mode: if engine.name == 'mysql':
sqlalchemy.event.listen(engine, 'checkout', _set_mode_traditional) if mysql_traditional_mode:
else: sqlalchemy.event.listen(engine, 'checkout',
LOG.warning(_("This application has not enabled MySQL traditional" _set_mode_traditional)
" mode, which means silent data corruption may" else:
" occur. Please encourage the application" LOG.warning(_("This application has not enabled MySQL "
" developers to enable this mode.")) "traditional mode, which means silent "
"data corruption may occur. "
"Please encourage the application "
"developers to enable this mode."))
elif 'sqlite' in connection_dict.drivername: elif 'sqlite' in connection_dict.drivername:
if not CONF.sqlite_synchronous: if not CONF.sqlite_synchronous:
sqlalchemy.event.listen(engine, 'connect', sqlalchemy.event.listen(engine, 'connect',