52 lines
1.3 KiB
Python
52 lines
1.3 KiB
Python
|
# 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: ] )
|