witten
/
luminotes
Archived
1
0
Fork 0

Based tool to convert file-based sessions to database-backed sessions.

This commit is contained in:
Dan Helfman 2008-11-05 14:37:53 -08:00
parent 889577ddfe
commit 233a95c31d
1 changed files with 51 additions and 0 deletions

51
tools/convert_sessions.py Normal file
View File

@ -0,0 +1,51 @@
# Basic script to convert file-based CherryPy sessions to PostgreSQL-backed sessions.
import os
import cPickle as pickle
from controller.Database import Database
from controller.Session_storage import Session_storage
def main( args ):
import cherrypy
from config import Common
cherrypy.config.update( Common.settings )
if args and "-d" in args:
from config import Development
settings = Development.settings
else:
from config import Production
settings = Production.settings
cherrypy.config.update( settings )
database = Database(
host = cherrypy.config.configMap[ u"global" ].get( u"luminotes.db_host" ),
ssl_mode = cherrypy.config.configMap[ u"global" ].get( u"luminotes.db_ssl_mode" ),
data_dir = ".",
)
class Stub_root( object ):
def __init__( self, database ):
self.database = database
cherrypy.root = Stub_root( database )
sessions = Session_storage()
session_count = 0
for session_filename in os.listdir( u"session/" ):
pickled_data = file( u"session/%s" % session_filename ).read()
( data, expiration_time ) = pickle.loads( pickled_data )
session_id = data[ u"_id" ]
sessions.save( session_id, data, expiration_time )
session_count += 1
print "converted %d sessions" % session_count
if __name__ == "__main__":
import sys
main( sys.argv[ 1: ] )