Changeset 1953


Ignore:
Timestamp:
Jul 1, 2011, 11:01:55 AM (5 years ago)
Author:
t.w.abma@…
Message:
  • added rename of GdtMappingColumn? field 'index' (reserved keyword for MySQL) to 'columnindex'
File:
1 edited

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                        }
Note: See TracChangeset for help on using the changeset viewer.