Revision a2d22dbd
Added by Andreas Müller almost 6 years ago
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
fix #7074 Change Media.mediaCreated to TimePeriod and make let PartialUserType support hour and minute