projects
/
cascardo
/
ipsilon.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Create database upgrade framework
[cascardo/ipsilon.git]
/
ipsilon
/
util
/
sessions.py
diff --git
a/ipsilon/util/sessions.py
b/ipsilon/util/sessions.py
index
f5390dc
..
b870319
100644
(file)
--- a/
ipsilon/util/sessions.py
+++ b/
ipsilon/util/sessions.py
@@
-2,7
+2,7
@@
import base64
from cherrypy.lib.sessions import Session
import base64
from cherrypy.lib.sessions import Session
-from ipsilon.util.data import S
qlS
tore, SqlQuery
+from ipsilon.util.data import Store, SqlQuery
import threading
try:
import cPickle as pickle
import threading
try:
import cPickle as pickle
@@
-13,10
+13,21
@@
except ImportError:
SESSION_COLUMNS = ['id', 'data', 'expiration_time']
SESSION_COLUMNS = ['id', 'data', 'expiration_time']
+class SessionStore(Store):
+ def _initialize_schema(self):
+ q = self._query(self._db, 'sessions', SESSION_COLUMNS,
+ trans=False)
+ q.create()
+
+ def _upgrade_schema(self, old_version):
+ raise NotImplementedError()
+
+
class SqlSession(Session):
dburi = None
_db = None
class SqlSession(Session):
dburi = None
_db = None
+ _store = None
_proto = 2
locks = {}
_proto = 2
locks = {}
@@
-28,7
+39,9
@@
class SqlSession(Session):
if k == 'storage_dburi':
cls.dburi = v
if k == 'storage_dburi':
cls.dburi = v
- cls._db = SqlStore(cls.dburi)
+ cls._store = SessionStore(database_url=cls.dburi)
+ # pylint: disable=protected-access
+ cls._db = cls._store._db
def _exists(self):
q = SqlQuery(self._db, 'sessions', SESSION_COLUMNS)
def _exists(self):
q = SqlQuery(self._db, 'sessions', SESSION_COLUMNS)