diff --git a/gluon/dal.py b/gluon/dal.py index e36ee7ba..c4529b44 100644 --- a/gluon/dal.py +++ b/gluon/dal.py @@ -2549,6 +2549,9 @@ class PostgreSQLAdapter(BaseAdapter): 'geography': 'GEOGRAPHY', 'big-id': 'BIGSERIAL PRIMARY KEY', 'big-reference': 'BIGINT REFERENCES %(foreign_key)s ON DELETE %(on_delete_action)s', + 'reference FK': ', CONSTRAINT FK_%(constraint_name)s FOREIGN KEY (%(field_name)s) REFERENCES %(foreign_key)s ON DELETE %(on_delete_action)s', + 'reference TFK': ' CONSTRAINT FK_%(foreign_table)s_PK FOREIGN KEY (%(field_name)s) REFERENCES %(foreign_table)s (%(foreign_key)s) ON DELETE %(on_delete_action)s', + } def varquote(self,name): diff --git a/gluon/globals.py b/gluon/globals.py index f4f0eb71..940d7f3e 100644 --- a/gluon/globals.py +++ b/gluon/globals.py @@ -546,6 +546,9 @@ class Session(Storage): # else the session goes in db elif response.session_storage_type == 'db': + # verify that session_id exists + if not response.session_id: + return # verify if tablename was set or used in connect if response.session_table_name and tablename == 'web2py_session': diff --git a/gluon/tools.py b/gluon/tools.py index b8e9a360..57486531 100644 --- a/gluon/tools.py +++ b/gluon/tools.py @@ -1450,7 +1450,7 @@ class Auth(object): """ tables = [table for table in tables] for table in tables: - if 'modified_on' in table.fields() and not current_record in table.fields(): + if '_id' in table.fields() and 'modified_on' in table.fields() and not current_record in table.fields(): table._enable_record_versioning( archive_db=archive_db, archive_name=archive_names,