from trac.db import Table,Column,Index,DatabaseManager
def do_upgrade(env, ver, cursor):
cursor.execute("CREATE TEMPORARY TABLE session_old AS SELECT * FROM session")
cursor.execute("DROP TABLE session")
db = env.get_db_cnx()
session_table = Table('session', key=('sid', 'authenticated', 'var_name'))[
Column('sid'),
Column('authenticated', type='int'),
Column('var_name'),
Column('var_value')]
db_backend, _ = DatabaseManager(env)._get_connector()
for stmt in db_backend.to_sql(session_table):
cursor.execute(stmt)
cursor.execute("INSERT INTO session (sid,authenticated,var_name,var_value) "
"SELECT sid,authenticated,var_name,var_value "
"FROM session_old")
cursor.execute("DROP TABLE session_old")
|