diff options
| author | Jenkins <jenkins@review.openstack.org> | 2012-10-10 20:52:30 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2012-10-10 20:52:30 +0000 |
| commit | e69d8b6570fe9db67f367af2834b7593ee5b0d37 (patch) | |
| tree | 5bd4cf191aff43a30739c4d23afc8cd7726d4b0f /nova | |
| parent | 6c0af0b1a8cfa5fc81d0679400a7b6d945dcec25 (diff) | |
| parent | 5b4b7e4083b85bd9c10792cf0adb11dc07e92333 (diff) | |
| download | nova-e69d8b6570fe9db67f367af2834b7593ee5b0d37.tar.gz nova-e69d8b6570fe9db67f367af2834b7593ee5b0d37.tar.xz nova-e69d8b6570fe9db67f367af2834b7593ee5b0d37.zip | |
Merge "Tell SQLite to enforce foreign keys."
Diffstat (limited to 'nova')
| -rw-r--r-- | nova/db/sqlalchemy/session.py | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/nova/db/sqlalchemy/session.py b/nova/db/sqlalchemy/session.py index 6c349e0c2..a1257e151 100644 --- a/nova/db/sqlalchemy/session.py +++ b/nova/db/sqlalchemy/session.py @@ -67,6 +67,14 @@ def add_regexp_listener(dbapi_con, con_record): dbapi_con.create_function('regexp', 2, regexp) +def enforce_foreign_keys_listener(dbapi_conn, connection_rec): + """Tell SQLite to enforce foreign keys. + + Requires SQLite version >= 3.6.19. + """ + dbapi_conn.execute("PRAGMA foreign_keys = ON") + + def greenthread_yield(dbapi_con, con_record): """ Ensure other greenthreads get a chance to execute by forcing a context @@ -142,6 +150,8 @@ def get_engine(): sqlalchemy.event.listen(_ENGINE, 'connect', synchronous_switch_listener) sqlalchemy.event.listen(_ENGINE, 'connect', add_regexp_listener) + sqlalchemy.event.listen(_ENGINE, 'connect', + enforce_foreign_keys_listener) if (FLAGS.sql_connection_trace and _ENGINE.dialect.dbapi.__name__ == 'MySQLdb'): |
