Changeset 14612


Ignore:
Timestamp:
May 28, 2015, 10:10:46 PM (9 years ago)
Author:
Ryan J Ollos
Message:

1.0.0dev: Utilize Trac 1.2 database API. Refs #12369.

Compatibility with Trac 1.0 is provided through the methods in compat.py.

Location:
codereviewerplugin/1.0
Files:
4 added
5 edited

Legend:

Unmodified
Added
Removed
  • codereviewerplugin/1.0/coderev/api.py

    r14611 r14612  
    99#
    1010
    11 from trac.core import *
     11from trac.core import Component, implements
    1212from trac.env import IEnvironmentSetupParticipant
    1313from trac.perm import IPermissionRequestor
    14 from trac.util.translation import _
     14
     15from coderev.compat import DatabaseManager
    1516
    1617DB_NAME = 'coderev'
     
    2930
    3031    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)
    3733
    3834    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')
    7237
    7338    # IPermissionRequestor methods
  • codereviewerplugin/1.0/coderev/upgrades/db1.py

    r14033 r14612  
    88#
    99
    10 from trac.db import Table, Column, Index, DatabaseManager
     10from trac.db import Table, Column, Index
    1111
    12 def do_upgrade(env, cursor):
     12from coderev.compat import DatabaseManager
    1313
    14     db_tables = [
     14
     15def do_upgrade(env, ver, cursor):
     16
     17    schema = [
    1518        Table('codereviewer')[
    1619            Column('repo', type='text'),
     
    2023            Column('summary', type='text'),
    2124            Column('time', type='integer'),
    22             Index(columns=['repo', 'changeset', 'time']),
     25            Index(['repo', 'changeset', 'time']),
    2326        ],
    2427    ]
    2528
    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  
    88#
    99
    10 from trac.db import Table, Column, Index, DatabaseManager
     10from trac.db import Table, Column
    1111
    12 def do_upgrade(env, cursor):
     12from coderev.compat import DatabaseManager
    1313
    14     db_tables = [
     14
     15def do_upgrade(env, ver, cursor):
     16
     17    schema = [
    1518        Table('codereviewer_map', key=['repo', 'changeset', 'ticket'])[
    1619            Column('repo', type='text'),
     
    2124    ]
    2225
    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  
    99#
    1010
    11 from trac.db import DatabaseManager
     11from trac.db.api import DatabaseManager
    1212
    1313
    14 def do_upgrade(env, cursor):
     14def do_upgrade(env, ver, cursor):
    1515
    1616    tables = [
     
    1919    ]
    2020
    21     db_connector, _ = DatabaseManager(env).get_connector()
     21    db_connector = DatabaseManager(env).get_connector()[0]
    2222    for table, columns in tables:
    2323        # Alter column types
  • codereviewerplugin/1.0/setup.py

    r14607 r14612  
    3030                                   'coderev.web_ui = coderev.web_ui',]},
    3131    install_requires=['Trac'],
     32    test_suite='coderev.tests',
    3233)
Note: See TracChangeset for help on using the changeset viewer.