Changeset 1953

Show
Ignore:
Timestamp:
01-07-11 11:01:55 (3 years ago)
Author:
t.w.abma@…
Message:

- added rename of GdtMappingColumn? field 'index' (reserved keyword for MySQL) to 'columnindex'

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/conf/dbnp/configuration/DatabaseUpgrade.groovy

    r1922 r1953  
    4040                dropAssayModulePlatform(sql, db)                                // r1689 
    4141                makeStudyTitleAndTemplateNamesUnique(sql, db)   // #401, #406 
     42        //renameGdtMappingColumnIndex(sql, db)            // 'index' column in GdtImporter MappingColumn is a reserved keyword in MySQL 
     43                                                        // GdtImporter now by default uses 'columnindex' as domain field name 
    4244        } 
    4345 
     
    185187                                } catch (Exception e) { 
    186188                                        println "dropMappingColumnNameConstraint database upgrade failed, `name` field unique constraint couldn't be dropped: " + e.getMessage() 
     189                                } 
     190                        } 
     191                } 
     192        } 
     193 
     194    /** 
     195         * Rename the column 'index' (reserved keyword in MySQL) from GdtImporterMapping to 'columnindex' 
     196         * 
     197         * @param sql 
     198         * @param db 
     199         */ 
     200        public static void renameGdtMappingColumnIndex(sql, db) { 
     201                // are we running postgreSQL ? 
     202                if (db == "org.postgresql.Driver") { 
     203                        if (sql.firstRow("SELECT * FROM information_schema.columns WHERE columns.table_name='gdt_mapping_column' AND columns.column_name='index'")) { 
     204                                if (String.metaClass.getMetaMethod("grom")) "performing database upgrade: GDT mapping column rename `index` to `columnindex`".grom() 
     205                                try { 
     206                                        // Rename column 'index' to 'columnindex' in Gdt Mapping Column 
     207                                        sql.execute("ALTER TABLE gdt_mapping_column RENAME COLUMN index TO columnindex;") 
     208                                } catch (Exception e) { 
     209                                        println "renameGdtMappingColumnIndex database upgrade failed, `index` field couldn't be renamed to `columnindex`: " + e.getMessage() 
    187210                                } 
    188211                        }