Changeset 3935

Show
Ignore:
Timestamp:
07/02/08 07:00:18 (5 months ago)
Author:
vnaum
Message:

Merging changes from 0.10 branch (portable table creation)

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • tracunreadplugin/0.11/setup.py

    r3534 r3935  
    88      description='Read/Unread comment tracker for Trac', 
    99      keywords='last unread forum', 
    10       version='0.0.1', 
     10      version='0.0.2', 
    1111      author='Vladislav Naumov', 
    1212      author_email='vnaum@vnaum.com', 
  • tracunreadplugin/0.11/trac_unread/env_setup.py

    r3534 r3935  
    22from trac.env import IEnvironmentSetupParticipant 
    33from trac.core import Component, implements 
     4from trac.db import Table, Column, Index, DatabaseManager 
    45 
    56class TracUnreadSetupParticipant(Component): 
     
    5556        if self.db_installed_version < 1: 
    5657            print "Creating trac_unread table" 
    57             sql = """ 
    58             CREATE TABLE trac_unread ( 
    59             username text, 
    60             last_read_on integer, 
    61             type text, 
    62             id text, 
    63             UNIQUE (type, id, username) 
    64             ); 
    65             """ 
     58             
     59            unread_table = Table('trac_unread', key=('type', 'id', 'username'))[ 
     60                Column('username'), 
     61                Column('last_read_on', type='int'), 
     62                Column('type'), 
     63                Column('id'), 
     64                Index(['type']), 
     65                Index(['id']), 
     66                Index(['username'])] 
     67             
     68            db_backend, _ = DatabaseManager(self.env)._get_connector() 
     69             
     70            for stmt in db_backend.to_sql(unread_table): 
     71                try: 
     72                    cur.execute(stmt) 
     73                except Exception, e: 
     74                    print "Upgrade failed\nSQL:\n%s\nError message: %s" % (stmt, e) 
     75                    db.rollback(); 
     76                    return 
     77             
     78            # This statement block always goes at the end this method 
    6679            try: 
    67                 cur.execute(sql) 
    68                  
    69                 # This statement block always goes at the end this method 
    70                 try: 
    71                     cur.execute("UPDATE system SET value=%s WHERE name=%s", 
    72                         (self.db_version, self.db_version_key)) 
    73                 except: 
    74                     cur.execute("INSERT INTO system (value, name) VALUES (%s, %s)", 
    75                         (self.db_version, self.db_version_key)) 
     80                cur.execute("UPDATE system SET value=%s WHERE name=%s", 
     81                    (self.db_version, self.db_version_key)) 
     82            except: 
     83                cur.execute("INSERT INTO system (value, name) VALUES (%s, %s)", 
     84                    (self.db_version, self.db_version_key)) 
    7685 
    77                 self.db_installed_version = self.db_version 
    78                  
    79                 db.commit() 
    80             except Exception, e: 
    81                 print "Upgrade failed\nSQL:\n%s\nError message: %s" % (sql, e) 
    82                 db.rollback(); 
     86            self.db_installed_version = self.db_version 
     87             
     88            db.commit() 
     89