Changeset 14612
- Timestamp:
- May 28, 2015, 10:10:46 PM (9 years ago)
- Location:
- codereviewerplugin/1.0
- Files:
-
- 4 added
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
codereviewerplugin/1.0/coderev/api.py
r14611 r14612 9 9 # 10 10 11 from trac.core import *11 from trac.core import Component, implements 12 12 from trac.env import IEnvironmentSetupParticipant 13 13 from trac.perm import IPermissionRequestor 14 from trac.util.translation import _ 14 15 from coderev.compat import DatabaseManager 15 16 16 17 DB_NAME = 'coderev' … … 29 30 30 31 def environment_needs_upgrade(self, db=None): 31 current_db_version = self._get_version() 32 if current_db_version < DB_VERSION: 33 return True 34 if current_db_version > DB_VERSION: 35 raise TracError(_("Database newer than CodeReviewer version")) 36 return False 32 return DatabaseManager(self.env).needs_upgrade(DB_VERSION, DB_NAME) 37 33 38 34 def upgrade_environment(self, db=None): 39 current_db_version = self._get_version() 40 with self.env.db_transaction as db: 41 cursor = db.cursor() 42 for i in range(current_db_version + 1, DB_VERSION + 1): 43 name = 'db%i' % i 44 try: 45 upgrades = __import__('upgrades', globals(), 46 locals(), [name]) 47 script = getattr(upgrades, name) 48 except AttributeError: 49 raise TracError(_("No CodeReviewer upgrade module %(num)i " 50 "(%(version)s.py)", num=i, version=name)) 51 script.do_upgrade(self.env, cursor) 52 self._set_version(i) 53 54 def _get_version(self): 55 value = self.env.db_query(""" 56 SELECT value FROM system WHERE name=%s 57 """, (DB_NAME,)) 58 return int(value[0][0]) if value else 0 59 60 def _set_version(self, ver): 61 if self._get_version() == 0: 62 self.env.db_transaction(""" 63 INSERT INTO system (value,name) VALUES (%s,%s) 64 """, (ver, DB_NAME)) 65 else: 66 self.env.db_transaction(""" 67 UPDATE system SET value=%s WHERE name=%s 68 """, (ver, DB_NAME)) 69 70 self.log.info("Upgraded CodeReviewer version from %d to %d", 71 ver-1, ver) 35 DatabaseManager(self.env).upgrade(DB_VERSION, DB_NAME, 36 'coderev.upgrades') 72 37 73 38 # IPermissionRequestor methods -
codereviewerplugin/1.0/coderev/upgrades/db1.py
r14033 r14612 8 8 # 9 9 10 from trac.db import Table, Column, Index , DatabaseManager10 from trac.db import Table, Column, Index 11 11 12 def do_upgrade(env, cursor): 12 from coderev.compat import DatabaseManager 13 13 14 db_tables = [ 14 15 def do_upgrade(env, ver, cursor): 16 17 schema = [ 15 18 Table('codereviewer')[ 16 19 Column('repo', type='text'), … … 20 23 Column('summary', type='text'), 21 24 Column('time', type='integer'), 22 Index( columns=['repo', 'changeset', 'time']),25 Index(['repo', 'changeset', 'time']), 23 26 ], 24 27 ] 25 28 26 # create the initial table (and index) 27 db_connector = DatabaseManager(env).get_connector()[0] 28 for table in db_tables: 29 for sql in db_connector.to_sql(table): 30 cursor.execute(sql) 29 DatabaseManager(env).create_tables(schema) -
codereviewerplugin/1.0/coderev/upgrades/db2.py
r14033 r14612 8 8 # 9 9 10 from trac.db import Table, Column , Index, DatabaseManager10 from trac.db import Table, Column 11 11 12 def do_upgrade(env, cursor): 12 from coderev.compat import DatabaseManager 13 13 14 db_tables = [ 14 15 def do_upgrade(env, ver, cursor): 16 17 schema = [ 15 18 Table('codereviewer_map', key=['repo', 'changeset', 'ticket'])[ 16 19 Column('repo', type='text'), … … 21 24 ] 22 25 23 # create the map table 24 db_connector = DatabaseManager(env).get_connector()[0] 25 for table in db_tables: 26 for sql in db_connector.to_sql(table): 27 cursor.execute(sql) 26 DatabaseManager(env).create_tables(schema) -
codereviewerplugin/1.0/coderev/upgrades/db3.py
r14611 r14612 9 9 # 10 10 11 from trac.db import DatabaseManager11 from trac.db.api import DatabaseManager 12 12 13 13 14 def do_upgrade(env, cursor):14 def do_upgrade(env, ver, cursor): 15 15 16 16 tables = [ … … 19 19 ] 20 20 21 db_connector , _ = DatabaseManager(env).get_connector()21 db_connector = DatabaseManager(env).get_connector()[0] 22 22 for table, columns in tables: 23 23 # Alter column types -
codereviewerplugin/1.0/setup.py
r14607 r14612 30 30 'coderev.web_ui = coderev.web_ui',]}, 31 31 install_requires=['Trac'], 32 test_suite='coderev.tests', 32 33 )
Note: See TracChangeset
for help on using the changeset viewer.