Changeset 474


Ignore:
Timestamp:
09/22/08 13:29:02 (5 years ago)
Author:
rcorsaro
Message:

fixed defect where tables for disabled plugins caused failure.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/plugins/oforgeplugin/oforge/api.py

    r466 r474  
    55import logging 
    66import pkg_resources 
     7import psycopg2  
    78import re 
    89import traceback 
     
    1516import trac.db_default 
    1617import trac.db 
    17  
    18 import psycopg2  
    1918 
    2019class OForgeProjectCreationError(Exception): 
     
    170169        # Setup vars 
    171170        config = self.getconfig(name) 
    172         category = config.get('trac', 'category') 
    173         new_schema = name 
    174         new_user = name 
     171        new_schema = re.sub('\W+', '', name) 
     172        new_user = re.sub('\W+', '', name) 
    175173        new_password = config.get('oforge','initial_db_password', 'secret') 
    176174        project_desc = config.get('project','desc', name) 
     175        category = config.get('project', 'category') 
     176        project_display_name = config.get('project','name', name) 
    177177        project_id = None 
    178178        # Create the new schema/user 
     
    197197                        (id, name, display_name, type, active_state, start_date)  
    198198                        VALUES(%s, '%s', '%s', '%s', 'Open', '%s') 
    199                     """%(project_id, name, project_desc, category, datetime.datetime.now())) 
     199                    """%(project_id, name, project_display_name, category, datetime.datetime.now())) 
    200200            master_db_cnx.commit() 
    201201        except Exception, e: 
     
    204204 
    205205        src_db_cnx = self.getenv(name).get_db_cnx() 
    206         src_cursor = src_db_cnx.cursor() 
    207         # Get list of tables excluding ones that shouldn't be copeied 
    208         src_cursor.execute(""" 
    209             SELECT name  
    210             FROM sqlite_master  
    211             WHERE type = 'table' AND name != 'session'  
    212                 AND name != 'auth_cookie' 
    213             ORDER BY name""") 
    214206        # Set trac database to new postgres schema 
    215207        props = self.postgres_db_props() 
     
    229221            EnvironmentSetup(new_env).environment_created() 
    230222            new_env.upgrade(backup=False) 
     223            # Get list of tables excluding ones that shouldn't be copeied 
     224            target_db_cursor = target_db_cnx.cursor() 
     225            target_db_cursor.execute(""" 
     226                SELECT table_name  
     227                FROM information_schema.tables  
     228                WHERE table_schema = '%s' AND table_name != 'session'  
     229                    AND table_name != 'auth_cookie'""", (new_schema,)) 
    231230            # Copy tables 
    232             for table in map(lambda r: r[0], src_cursor.fetchall()): 
     231            for table in map(lambda r: r[0], target_db_cursor.fetchall()): 
    233232                self._copy_table(src_db_cnx, target_db_cnx, table) 
    234233            # Commit all changes 
Note: See TracChangeset for help on using the changeset viewer.