Skip to content

Commit beb9f34

Browse files
committed
incorporate PR feedback; create_table -> table_exists
1 parent e4c599d commit beb9f34

File tree

5 files changed

+17
-11
lines changed

5 files changed

+17
-11
lines changed

docs/config_reference.rst

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -175,11 +175,11 @@ SqlAlchemy
175175

176176
Default: ``'sessions'``
177177

178-
.. py:data:: SESSION_SQLALCHEMY_CREATE_TABLE
178+
.. py:data:: SESSION_SQLALCHEMY_TABLE_EXISTS
179179
180-
Whether (or not) Flask-Session should manage creation of the table for storing session data.
180+
Whether (or not) the table for storing session data is managed by libraries (e.g. Flask-Migrate) or other means outside of Flask-Session. When set to ``True``, Flask-Session will not try to create the session table.
181181

182-
Default: ``True``
182+
Default: ``False``
183183

184184
.. py:data:: SESSION_SQLALCHEMY_SEQUENCE
185185

src/flask_session/__init__.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,8 @@ def _get_interface(self, app):
9191
SESSION_SQLALCHEMY_TABLE = config.get(
9292
"SESSION_SQLALCHEMY_TABLE", Defaults.SESSION_SQLALCHEMY_TABLE
9393
)
94-
SESSION_SQLALCHEMY_CREATE_TABLE = config.get(
95-
"SESSION_SQLALCHEMY_CREATE_TABLE", Defaults.SESSION_SQLALCHEMY_CREATE_TABLE
94+
SESSION_SQLALCHEMY_TABLE_EXISTS = config.get(
95+
"SESSION_SQLALCHEMY_TABLE_EXISTS", Defaults.SESSION_SQLALCHEMY_TABLE_EXISTS
9696
)
9797
SESSION_SQLALCHEMY_SEQUENCE = config.get(
9898
"SESSION_SQLALCHEMY_SEQUENCE", Defaults.SESSION_SQLALCHEMY_SEQUENCE
@@ -185,7 +185,7 @@ def _get_interface(self, app):
185185
**common_params,
186186
client=SESSION_SQLALCHEMY,
187187
table=SESSION_SQLALCHEMY_TABLE,
188-
create_table=SESSION_SQLALCHEMY_CREATE_TABLE,
188+
table_exists=SESSION_SQLALCHEMY_TABLE_EXISTS,
189189
sequence=SESSION_SQLALCHEMY_SEQUENCE,
190190
schema=SESSION_SQLALCHEMY_SCHEMA,
191191
bind_key=SESSION_SQLALCHEMY_BIND_KEY,

src/flask_session/defaults.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ class Defaults:
3939
SESSION_SQLALCHEMY_SEQUENCE = None
4040
SESSION_SQLALCHEMY_SCHEMA = None
4141
SESSION_SQLALCHEMY_BIND_KEY = None
42-
SESSION_SQLALCHEMY_CREATE_TABLE = True
42+
SESSION_SQLALCHEMY_TABLE_EXISTS = False
4343

4444
# DynamoDB settings
4545
SESSION_DYNAMODB = None

src/flask_session/sqlalchemy/sqlalchemy.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
"""Provides a Session Interface to SQLAlchemy"""
2+
13
import warnings
24
from datetime import datetime
35
from datetime import timedelta as TimeDelta
@@ -54,11 +56,15 @@ class SqlAlchemySessionInterface(ServerSideSessionInterface):
5456
:param sid_length: The length of the generated session id in bytes.
5557
:param serialization_format: The serialization format to use for the session data.
5658
:param table: The table name you want to use.
59+
:param table_exists: Whether the session table is created/managed outside of Flask-Session (default=False).
5760
:param sequence: The sequence to use for the primary key if needed.
5861
:param schema: The db schema to use.
5962
:param bind_key: The db bind key to use.
6063
:param cleanup_n_requests: Delete expired sessions on average every N requests.
6164
65+
.. versionadded:: 0.9
66+
The `table_exists` parameter was added.
67+
6268
.. versionadded:: 0.7
6369
db changed to client to be standard on all session interfaces.
6470
The `cleanup_n_request` parameter was added.
@@ -86,7 +92,7 @@ def __init__(
8692
sequence: Optional[str] = Defaults.SESSION_SQLALCHEMY_SEQUENCE,
8793
schema: Optional[str] = Defaults.SESSION_SQLALCHEMY_SCHEMA,
8894
bind_key: Optional[str] = Defaults.SESSION_SQLALCHEMY_BIND_KEY,
89-
create_table: bool = Defaults.SESSION_SQLALCHEMY_CREATE_TABLE,
95+
table_exists: bool = Defaults.SESSION_SQLALCHEMY_TABLE_EXISTS,
9096
cleanup_n_requests: Optional[int] = Defaults.SESSION_CLEANUP_N_REQUESTS,
9197
):
9298
self.app = app
@@ -104,9 +110,9 @@ def __init__(
104110
self.sql_session_model = create_session_model(
105111
client, table, schema, bind_key, sequence
106112
)
107-
113+
108114
# Optionally create the table if it does not exist
109-
if create_table:
115+
if not table_exists:
110116
with app.app_context():
111117
if bind_key:
112118
engine = self.client.get_engine(app, bind=bind_key)

tests/test_sqlalchemy.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ def test_database_not_created_automatically(self, app_utils):
6464
{
6565
"SESSION_TYPE": "sqlalchemy",
6666
"SQLALCHEMY_DATABASE_URI": "sqlite:///",
67-
"SESSION_SQLALCHEMY_CREATE_TABLE": False,
67+
"SESSION_SQLALCHEMY_TABLE_EXISTS": True,
6868
}
6969
)
7070
with app.app_context() and self.setup_sqlalchemy(

0 commit comments

Comments
 (0)