Project

General

Profile

« Previous | Next » 

Revision a2d22dbd

Added by Andreas Müller almost 6 years ago

fix #7074 Change Media.mediaCreated to TimePeriod and make let PartialUserType support hour and minute

View differences:

cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/database/update/v47_50/SchemaUpdater_47_50.java
18 18
import eu.etaxonomy.cdm.database.update.ClassBaseTypeUpdater;
19 19
import eu.etaxonomy.cdm.database.update.ColumnAdder;
20 20
import eu.etaxonomy.cdm.database.update.ColumnNameChanger;
21
import eu.etaxonomy.cdm.database.update.ColumnRemover;
21 22
import eu.etaxonomy.cdm.database.update.ColumnTypeChanger;
22 23
import eu.etaxonomy.cdm.database.update.ISchemaUpdater;
23 24
import eu.etaxonomy.cdm.database.update.ISchemaUpdaterStep;
......
92 93
		step = SimpleSchemaUpdaterStep.NewAuditedInstance(stepName, query, tableName, -99);
93 94
		stepList.add(step);
94 95

  
96
		//#7074 change type for Media.mediaCreated
97
		changeTypeMediaCreated(stepList);
98

  
95 99
		//#6752 add Reference.datePublished_verbatimDate
96 100
	    stepName = "Add Reference.datePublished_verbatimDate";
97 101
	    tableName = "Reference";
......
262 266
        return stepList;
263 267
    }
264 268

  
269
    /**
270
     * @param stepList
271
     */
272
    private void changeTypeMediaCreated(List<ISchemaUpdaterStep> stepList) {
273
        //rename old column
274
        String stepName = "Rename Media.mediaCreated";
275
        String tableName = "Media";
276
        String oldColumnName = "mediaCreated";
277
        String newColumnName = "mediaCreatedOld";
278
        ISchemaUpdaterStep step = ColumnNameChanger.NewDateTimeInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
279
        stepList.add(step);
280

  
281
        //add timeperiod columns
282
        stepName = "Add mediaCreated_start";
283
        tableName = "Media";
284
        newColumnName = "mediaCreated_start";
285
        int size = 50;
286
        step = ColumnAdder.NewStringInstance(stepName, tableName, newColumnName, size, INCLUDE_AUDIT);
287
        stepList.add(step);
288

  
289
        stepName = "Add mediaCreated_end";
290
        newColumnName = "mediaCreated_end";
291
        step = ColumnAdder.NewStringInstance(stepName, tableName, newColumnName, size, INCLUDE_AUDIT);
292
        stepList.add(step);
293

  
294
        stepName = "Add mediaCreated_freetext";
295
        newColumnName = "mediaCreated_freetext";
296
        step = ColumnAdder.NewStringInstance(stepName, tableName, newColumnName, INCLUDE_AUDIT);
297
        stepList.add(step);
298

  
299
        //move data
300
        stepName = "Copy mediaCreated to new columns";
301
        String query = "UPDATE @@Media@@ "
302
                + " SET mediaCreated_start = Left(Replace(Replace(Replace(mediaCreatedOld, '-', ''), ':', ''), ' ', '_'), 13)"
303
                + " WHERE mediaCreatedOld IS NOT NULL ";
304
        step = SimpleSchemaUpdaterStep.NewAuditedInstance(stepName, query, tableName, -99);
305
        stepList.add(step);
306

  
307
        //delete old column
308
        stepName = "Remove old mediaCreated";
309
        String columnName = "mediaCreatedOld";
310
        ColumnRemover.NewInstance(stepName, tableName, columnName, INCLUDE_AUDIT);
311
        stepList.add(step);
312

  
313

  
314

  
315
    }
316

  
265 317
    /**
266 318
     * @param stepList
267 319
     */

Also available in: Unified diff