def _upgrade_db(self, db): """Each schema version should have its own upgrade module, named upgrades/dbN.py, where 'N' is the version number (int). """ dbm = DatabaseManager(self.env) if dbm.needs_upgrade(db_default.version, db_default.name): if not dbm.get_database_version(db_default.name): dbm.create_tables(db_default.tables) dbm.set_database_version(db_default.version, db_default.name) else: dbm.upgrade(db_default.version, db_default.name, 'crashdump.upgrades') try: Type(name='crashdump', env=self.env) except ResourceNotFound: crashdump_ticket_type = Type(env=self.env) crashdump_ticket_type.name = 'crashdump' crashdump_ticket_type.description = 'crashdump' crashdump_ticket_type.insert() custom = self.config['ticket-custom'] config_dirty = False if 'linked_crash' not in custom: custom.set('linked_crash', 'text') custom.set('linked_crash.label', 'Linked crash') config_dirty = True if config_dirty: self.config.save()
def upgrade_environment(self): dbm = DatabaseManager(self.env) current_version = dbm.get_database_version(schema_version_name) if not current_version: dbm.create_tables(schema) dbm.set_database_version(schema_version, schema_version_name) else: dbm.upgrade(schema_version, schema_version_name, 'tracspamfilter.upgrades')
def do_upgrade(env, ver, cursor): """Add a column to the log table for storing the complete request. Add table required for spam reports by users. Add table required for filtering statistics. """ changed_tables = [ Table('spamfilter_log', key='id')[ Column('id', auto_increment=True), Column('time', type='int'), Column('path'), Column('author'), Column('authenticated', type='int'), Column('ipnr'), Column('headers'), Column('content'), Column('rejected', type='int'), Column('karma', type='int'), Column('reasons'), Column('request') ] ] new_tables = [ Table('spamfilter_statistics', key=('strategy', 'action', 'data', 'status'))[ Column('strategy'), Column('action'), Column('data'), Column('status'), Column('delay', type='double precision'), Column('delay_max', type='double precision'), Column('delay_min', type='double precision'), Column('count', type='int'), Column('external', type='int'), Column('time', type='int') ], Table('spamfilter_report', key='id')[ Column('id', auto_increment=True), Column('entry'), Column('headers'), Column('author'), Column('authenticated', type='int'), Column('comment'), Column('time', type='int') ] ] dbm = DatabaseManager(env) dbm.create_tables(new_tables) dbm.upgrade_tables(changed_tables)
def upgrade_environment(self, db): dbm = DatabaseManager(self.env) if dbm.needs_upgrade(db_default.version, db_default.name): if not dbm.get_database_version(db_default.name): dbm.create_tables(db_default.tables) dbm.set_database_version(db_default.version, db_default.name) else: dbm.upgrade(db_default.version, db_default.name, 'mastertickets.upgrades') custom = self.config['ticket-custom'] save_config = False if 'blocking' not in custom: custom.set('blocking', 'text') custom.set('blocking.label', 'Blocking') save_config = True if 'blockedby' not in custom: custom.set('blockedby', 'text') custom.set('blockedby.label', 'Blocked By') save_config = True if save_config: self.config.save()
def upgrade_environment(self): dbm = DatabaseManager(self.env) with self.env.db_transaction: dbm.create_tables(tables_v1) dbm.set_database_version(db_version, db_version_key)
def create_initial_database(self): dbm = DatabaseManager(self.env) dbm.create_tables(db_default.tables) dbm.set_database_version(db_default.version, db_default.name)