Project

General

Profile

Download (25 KB) Statistics
| Branch: | Tag: | Revision:
1
// $Id$
2
/**
3
 * Copyright (C) 2007 EDIT
4
 * European Distributed Institute of Taxonomy
5
 * http://www.e-taxonomy.eu
6
 *
7
 * The contents of this file are subject to the Mozilla Public License Version 1.1
8
 * See LICENSE.TXT at the top of this package for the full license terms.
9
 */
10

    
11
package eu.etaxonomy.cdm.database.update.v36_40;
12

    
13
import java.util.ArrayList;
14
import java.util.List;
15

    
16
import org.apache.log4j.Logger;
17

    
18
import eu.etaxonomy.cdm.database.update.ColumnAdder;
19
import eu.etaxonomy.cdm.database.update.ColumnNameChanger;
20
import eu.etaxonomy.cdm.database.update.ColumnRemover;
21
import eu.etaxonomy.cdm.database.update.ISchemaUpdater;
22
import eu.etaxonomy.cdm.database.update.ISchemaUpdaterStep;
23
import eu.etaxonomy.cdm.database.update.SchemaUpdaterBase;
24
import eu.etaxonomy.cdm.database.update.SimpleSchemaUpdaterStep;
25
import eu.etaxonomy.cdm.database.update.TableNameChanger;
26
import eu.etaxonomy.cdm.database.update.v35_36.SchemaUpdater_35_36;
27

    
28
/**
29
 * @author a.mueller
30
 * @created 16.04.2016
31
 */
32
public class SchemaUpdater_36_40 extends SchemaUpdaterBase {
33

    
34
	@SuppressWarnings("unused")
35
	private static final Logger logger = Logger.getLogger(SchemaUpdater_36_40.class);
36
	private static final String endSchemaVersion = "4.0.0.0.201604200000";
37
	private static final String startSchemaVersion = "3.6.0.0.201527040000";
38

    
39
	// ********************** FACTORY METHOD *************************************
40

    
41
	public static SchemaUpdater_36_40 NewInstance() {
42
		return new SchemaUpdater_36_40();
43
	}
44

    
45
	/**
46
	 * @param startSchemaVersion
47
	 * @param endSchemaVersion
48
	 */
49
	protected SchemaUpdater_36_40() {
50
		super(startSchemaVersion, endSchemaVersion);
51
	}
52

    
53
	@Override
54
	protected List<ISchemaUpdaterStep> getUpdaterList() {
55

    
56
		String stepName;
57
		String tableName;
58
		ISchemaUpdaterStep step;
59
//		String columnName;
60
		String newColumnName;
61
		String oldColumnName;
62
		String columnNames[];
63
		String referencedTables[];
64
		String columnTypes[];
65
//		boolean includeCdmBaseAttributes = false;
66

    
67
		List<ISchemaUpdaterStep> stepList = new ArrayList<ISchemaUpdaterStep>();
68

    
69
        //#5606
70
        //Add preferred stable URI to SpecimenOrObservation
71
        stepName = "Add preferred stable URI to SpecimenOrObservation";
72
        tableName = "SpecimenOrObservationBase";
73
        newColumnName = "preferredStableUri";
74
        step = ColumnAdder.NewClobInstance(stepName, tableName, newColumnName, INCLUDE_AUDIT);
75
        stepList.add(step);
76

    
77
        //#5717
78
        //Add sec micro reference
79
        stepName = "Add secMicroReference to TaxonBase";
80
        tableName = "TaxonBase";
81
        newColumnName = "secMicroReference";
82
        step = ColumnAdder.NewStringInstance(stepName, tableName, newColumnName, INCLUDE_AUDIT);
83
        stepList.add(step);
84

    
85
        //#5718
86
        //Remove autoincrement from AuditEvent.revisionnumber
87
        stepName = "Remove autoincrement from AuditEvent.revisionnumber";
88
//        String query = "ALTER TABLE @@AuditEvent@@ ALTER revisionnumber DROP DEFAULT";
89
//        step = SimpleSchemaUpdaterStep.NewNonAuditedInstance(stepName, query, -99);
90
//        stepList.add(step);
91
        tableName = "AuditEvent";
92
        oldColumnName = "revisionnumber";
93
        newColumnName = "revisionnumberOld";
94
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, ! INCLUDE_AUDIT);
95
        stepList.add(step);
96

    
97
        tableName = "AuditEvent";
98
        String columnName = oldColumnName;
99
        Integer defaultValue = null;
100
        boolean notNull = true;
101
        step = ColumnAdder.NewIntegerInstance(stepName, tableName, columnName, ! INCLUDE_AUDIT, defaultValue, notNull);
102
        stepList.add(step);
103

    
104
        String query = "UPDATE @@AuditEvent@@ SET revisionnumber = revisionnumberOld";
105
        step = SimpleSchemaUpdaterStep.NewNonAuditedInstance(stepName, query, -99);
106
        stepList.add(step);
107

    
108
        step = ColumnRemover.NewInstance(stepName, tableName, newColumnName, ! INCLUDE_AUDIT);
109
        stepList.add(step);
110

    
111
        //#5734
112
        //Add symbol to terms
113
        stepName = "Add symbols to terms";
114
        tableName = "DefinedTermBase";
115
        newColumnName = "symbol";
116
        step = ColumnAdder.NewStringInstance(stepName, tableName, newColumnName, 30, INCLUDE_AUDIT);
117
        stepList.add(step);
118

    
119
        stepName = "Update symbols for terms";
120
        query = "UPDATE @@DefinedTermBase@@ SET symbol = idInVocabulary WHERE idInVocabulary <> ''";
121
        step = SimpleSchemaUpdaterStep.NewNonAuditedInstance(stepName, query, -99);
122
        stepList.add(step);
123

    
124

    
125
        //Add inverse symbol to terms
126
        stepName = "Add inverse symbol to terms";
127
        tableName = "DefinedTermBase";
128
        newColumnName = "inverseSymbol";
129
        step = ColumnAdder.NewStringInstance(stepName, tableName, newColumnName, 30, INCLUDE_AUDIT);
130
        stepList.add(step);
131

    
132
        stepName = "Update symbols for terms";
133
        query = "UPDATE DefinedTermBase dtb SET dtb.inverseSymbol = ( " +
134
            " SELECT  r.abbreviatedlabel " +
135
            " FROM RelationshipTermBase_inverseRepresentation MN " +
136
                " INNER JOIN Representation r ON r.id = MN.inverserepresentations_id " +
137
            " WHERE dtb.id = MN.DefinedTermBase_id AND r.abbreviatedlabel <> '' ) ";
138
        step = SimpleSchemaUpdaterStep.NewNonAuditedInstance(stepName, query, -99);
139
        stepList.add(step);
140

    
141
        //#5369
142
        renameColumnsAccordingToHibernate5(stepList);
143

    
144
        //Update xxxObj_type  (#3701)
145
        step = ReferencedObjTypeUpdater.NewInstance();
146
        stepList.add(step);
147

    
148
        //remove bidirectionality from supplemental data #5743
149
        //annotation
150
        stepName = "Remove Annotation.annotatedObj_type";
151
        tableName = "Annotation";
152
        oldColumnName = "annotatedObj_type";
153
        step = ColumnRemover.NewInstance(stepName, tableName, oldColumnName, ! INCLUDE_AUDIT);
154
        stepList.add(step);
155

    
156
        stepName = "Remove Annotation.annotatedObj_id";
157
        tableName = "Annotation";
158
        oldColumnName = "annotatedObj_id";
159
        step = ColumnRemover.NewInstance(stepName, tableName, oldColumnName, ! INCLUDE_AUDIT);
160
        stepList.add(step);
161

    
162
        //marker
163
        stepName = "Remove Marker.markedObj_type";
164
        tableName = "Marker";
165
        oldColumnName = "markedObj_type";
166
        step = ColumnRemover.NewInstance(stepName, tableName, oldColumnName, ! INCLUDE_AUDIT);
167
        stepList.add(step);
168

    
169
        stepName = "Remove Marker.markedObj_id";
170
        tableName = "Marker";
171
        oldColumnName = "markedObj_id";
172
        step = ColumnRemover.NewInstance(stepName, tableName, oldColumnName, ! INCLUDE_AUDIT);
173
        stepList.add(step);
174

    
175
        //extension
176
        stepName = "Remove Extension.extendedObj_type";
177
        tableName = "Extension";
178
        oldColumnName = "extendedObj_type";
179
        step = ColumnRemover.NewInstance(stepName, tableName, oldColumnName, ! INCLUDE_AUDIT);
180
        stepList.add(step);
181

    
182
        stepName = "Remove Extension.extendedObj_id";
183
        tableName = "Extension";
184
        oldColumnName = "extendedObj_id";
185
        step = ColumnRemover.NewInstance(stepName, tableName, oldColumnName, ! INCLUDE_AUDIT);
186
        stepList.add(step);
187

    
188
        //sources
189
        stepName = "Remove OriginalSourceBase.sourcedObj_type";
190
        tableName = "OriginalSourceBase";
191
        oldColumnName = "sourcedObj_type";
192
        step = ColumnRemover.NewInstance(stepName, tableName, oldColumnName, ! INCLUDE_AUDIT);
193
        stepList.add(step);
194

    
195
        stepName = "Remove OriginalSourceBase.sourcedObj_id";
196
        tableName = "OriginalSourceBase";
197
        oldColumnName = "sourcedObj_id";
198
        step = ColumnRemover.NewInstance(stepName, tableName, oldColumnName, ! INCLUDE_AUDIT);
199
        stepList.add(step);
200

    
201
        //identifier
202
        stepName = "Remove Identifier.identifiedObj_type";
203
        tableName = "Identifier";
204
        oldColumnName = "identifiedObj_type";
205
        step = ColumnRemover.NewInstance(stepName, tableName, oldColumnName, ! INCLUDE_AUDIT);
206
        stepList.add(step);
207

    
208
        stepName = "Remove Identifier.identifiedObj_id";
209
        tableName = "Identifier";
210
        oldColumnName = "identifiedObj_id";
211
        step = ColumnRemover.NewInstance(stepName, tableName, oldColumnName, ! INCLUDE_AUDIT);
212
        stepList.add(step);
213

    
214
        return stepList;
215
	}
216

    
217

    
218
	//#5369
219
    private void renameColumnsAccordingToHibernate5(List<ISchemaUpdaterStep> stepList) {
220

    
221
        //AgenBase_AgentBase.AgentBase_ID  -> Team_ID
222
        String stepName = "Rename columns according to hibernate5";
223
        String tableName = "AgentBase_AgentBase";
224
        String oldColumnName = "agentbase_id";
225
        String newColumnName = "team_id";
226
        ISchemaUpdaterStep step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
227
        stepList.add(step);
228

    
229
        //DescriptionElementBase_LanguageString.DescriptionElementBase_ID -> TextData_ID
230
        stepName = "Rename DescriptionElementBase_LanguageString.DescriptionElementBase_ID";
231
        tableName = "DescriptionElementBase_LanguageString";
232
        oldColumnName = "descriptionElementBase_id";
233
        newColumnName = "textdata_id";
234
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
235
        stepList.add(step);
236

    
237
        //AgentBase_DefinedTermBase.AgentBase_ID -> Institution_id
238
        stepName = "Rename AgentBase_DefinedTermBase.AgentBase_ID -> Institution_id";
239
        tableName = "AgentBase_DefinedTermBase";
240
        oldColumnName = "agentbase_id";
241
        newColumnName = "institution_id";
242
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
243
        stepList.add(step);
244

    
245
        //PermissionGroup_GrantedAuthorityImpl.PermsiionsGroup_id -> Group_id
246
        stepName = "PermissionGroup_GrantedAuthorityImpl.PermsiionsGroup_id -> Group_id ";
247
        tableName = "PermissionGroup_GrantedAuthorityImpl";
248
        oldColumnName = "Permissiongroup_id";
249
        newColumnName = "group_id";
250
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, ! INCLUDE_AUDIT);
251
        stepList.add(step);
252

    
253
        //UserAccount_GrantedAuthorityImpl.UserAccount_id -> User_id
254
        stepName = "UserAccount_GrantedAuthorityImpl.UserAccount_id -> User_id ";
255
        tableName = "UserAccount_GrantedAuthorityImpl";
256
        oldColumnName = "useraccount_id";
257
        newColumnName = "user_id";
258
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, ! INCLUDE_AUDIT);
259
        stepList.add(step);
260

    
261
        //DefinedTermBase_RecommendedModifierEnumeration.DefinedTermBase_id -> Feature_id
262
        stepName = "DefinedTermBase_RecommendedModifierEnumeration.DefinedTermBase_id -> Feature_id";
263
        tableName = "DefinedTermBase_RecommendedModifierEnumeration";
264
        oldColumnName = "definedtermbase_id";
265
        newColumnName = "feature_id";
266
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
267
        stepList.add(step);
268

    
269
        //DefinedTermBase_StatisticalMeasure.DefinedTermBase_id -> Feature_id
270
        stepName = "DefinedTermBase_StatisticalMeasure.DefinedTermBase_id -> Feature_id";
271
        tableName = "DefinedTermBase_StatisticalMeasure";
272
        oldColumnName = "definedtermbase_id";
273
        newColumnName = "feature_id";
274
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
275
        stepList.add(step);
276

    
277
        //DefinedTermBase_SupportedCategoricalEnumeration.DefinedTermBase_id -> Feature_id
278
        stepName = "DefinedTermBase_SupportedCategoricalEnumeration.DefinedTermBase_id -> Feature_id";
279
        tableName = "DefinedTermBase_SupportedCategoricalEnumeration";
280
        oldColumnName = "definedtermbase_id";
281
        newColumnName = "feature_id";
282
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
283
        stepList.add(step);
284

    
285
        //DefinedTermBase_MeasurementUnit.DefinedTermBase_id -> Feature_id
286
        stepName = "DefinedTermBase_MeasurementUnit.DefinedTermBase_id -> Feature_id";
287
        tableName = "DefinedTermBase_MeasurementUnit";
288
        oldColumnName = "definedtermbase_id";
289
        newColumnName = "feature_id";
290
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
291
        stepList.add(step);
292

    
293
        //Media_TaxonBase.Media_id -> MediaKey_id
294
        stepName = "DefinedTermBase_MeasurementUnit.DefinedTermBase_id -> Feature_id";
295
        tableName = "Media_TaxonBase";
296
        oldColumnName = "media_id";
297
        newColumnName = "mediakey_id";
298
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
299
        stepList.add(step);
300

    
301
        //Rename Media_TaxonBase -> MediaKey_CoveredTaxon
302
        stepName = "Rename Media_TaxonBase -> MediaKey_CoveredTaxon";
303
        String oldTableName = "Media_TaxonBase";
304
        String newTableName = "MediaKey_CoveredTaxon";
305
        step = TableNameChanger.NewInstance(stepName, oldTableName, newTableName, INCLUDE_AUDIT);
306
        stepList.add(step);
307

    
308
        //MediaKey_NamedArea.Media_id -> MediaKey_id
309
        stepName = "MediaKey_NamedArea.Media_id -> MediaKey_id";
310
        tableName = "MediaKey_NamedArea";
311
        oldColumnName = "media_id";
312
        newColumnName = "mediakey_id";
313
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
314
        stepList.add(step);
315

    
316
        //MediaKey_Scope.Media_id -> MediaKey_id
317
        stepName = "MediaKey_Scope.Media_id -> MediaKey_id";
318
        tableName = "MediaKey_Scope";
319
        oldColumnName = "media_id";
320
        newColumnName = "mediakey_id";
321
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
322
        stepList.add(step);
323

    
324
        //Rename MediaKey_Taxon -> MediaKey_TaxonScope
325
        stepName = "Rename MediaKey_Taxon -> MediaKey_TaxonScope";
326
        oldTableName = "MediaKey_Taxon";
327
        newTableName = "MediaKey_TaxonScope";
328
        step = TableNameChanger.NewInstance(stepName, oldTableName, newTableName, INCLUDE_AUDIT);
329
        stepList.add(step);
330

    
331
        //MediaKey_TaxonScope.taxon_id -> taxonomicScope_id
332
        stepName = "MediaKey_TaxonScope.taxon_id -> taxonomicScope_id";
333
        tableName = "MediaKey_TaxonScope";
334
        oldColumnName = "taxon_id";
335
        newColumnName = "taxonomicScope_id";
336
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
337
        stepList.add(step);
338

    
339
        //Rename WorkingSet_TaxonBase -> MultiAccessKey_CoveredTaxon
340
        stepName = "Rename WorkingSet_TaxonBase -> MultiAccessKey_CoveredTaxon";
341
        oldTableName = "WorkingSet_TaxonBase";
342
        newTableName = "MultiAccessKey_CoveredTaxon";
343
        step = TableNameChanger.NewInstance(stepName, oldTableName, newTableName, INCLUDE_AUDIT);
344
        stepList.add(step);
345

    
346
        //MultiAccessKey_CoveredTaxon.WorkingSet_id -> MultiAccessKey_id
347
        stepName = "MultiAccessKey_CoveredTaxon.WorkingSet_id -> MultiAccessKey_id";
348
        tableName = "MultiAccessKey_CoveredTaxon";
349
        oldColumnName = "workingset_id";
350
        newColumnName = "multiaccesskey_id";
351
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
352
        stepList.add(step);
353
//         (also rename table)
354

    
355
        //MultiAccessKey_NamedArea.WorkingSet_id -> MultiAccessKey_id
356
        stepName = "MultiAccessKey_NamedArea.WorkingSet_id -> MultiAccessKey_id";
357
        tableName = "MultiAccessKey_NamedArea";
358
        oldColumnName = "workingset_id";
359
        newColumnName = "multiaccesskey_id";
360
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
361
        stepList.add(step);
362

    
363
        //MultiAccessKey_Scope.WorkingSet_id -> MultiAccessKey_id
364
        stepName = "MultiAccessKey_Scope.WorkingSet_id -> MultiAccessKey_id ";
365
        tableName = "MultiAccessKey_Scope";
366
        oldColumnName = "workingset_id";
367
        newColumnName = "multiaccesskey_id";
368
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
369
        stepList.add(step);
370

    
371
        //Rename MultiAccessKey_Taxon -> MultiAccessKey_TaxonScope
372
        stepName = "Rename MultiAccessKey_Taxon -> MultiAccessKey_TaxonScope";
373
        oldTableName = "MultiAccessKey_Taxon";
374
        newTableName = "MultiAccessKey_TaxonScope";
375
        step = TableNameChanger.NewInstance(stepName, oldTableName, newTableName, INCLUDE_AUDIT);
376
        stepList.add(step);
377

    
378
        //MultiAccessKey_TaxonScope.taxon_id -> taxonomicScope_id
379
        stepName = "MultiAccessKey_TaxonScope.taxon_id -> taxonomicScope_id";
380
        tableName = "MultiAccessKey_TaxonScope";
381
        oldColumnName = "taxon_id";
382
        newColumnName = "taxonomicScope_id";
383
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
384
        stepList.add(step);
385

    
386
        //DescriptionBase_Scope.DescriptionBase_id -> TaxonDescription_id
387
        stepName = "DescriptionBase_Scope.DescriptionBase_id -> TaxonDescription_id";
388
        tableName = "DescriptionBase_Scope";
389
        oldColumnName = "descriptionbase_id";
390
        newColumnName = "taxondescription_id";
391
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
392
        stepList.add(step);
393

    
394
        //DescriptionBase_GeoScope.DescriptionBase_id -> TaxonDescription_id
395
        stepName = "DescriptionBase_GeoScope.DescriptionBase_id -> TaxonDescription_id";
396
        tableName = "DescriptionBase_GeoScope";
397
        oldColumnName = "descriptionbase_id";
398
        newColumnName = "taxondescription_id";
399
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
400
        stepList.add(step);
401

    
402
        //DefinedTermBase_Continent.DefinedTermBase_id -> Country_id
403
        stepName = "DefinedTermBase_Continent.DefinedTermBase_id -> Country_id";
404
        tableName = "DefinedTermBase_Continent";
405
        oldColumnName = "definedtermbase_id";
406
        newColumnName = "country_id";
407
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
408
        stepList.add(step);
409

    
410
        //DefinedTermBase_Country.DefinedTermBase_id -> NamedArea_id
411
        stepName = "DefinedTermBase_Country.DefinedTermBase_id -> NamedArea_id";
412
        tableName = "DefinedTermBase_Country";
413
        oldColumnName = "definedtermbase_id";
414
        newColumnName = "namedarea_id";
415
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
416
        stepList.add(step);
417

    
418
        //Media_Sequence.Media_id -> PhylogeneticTree_id
419
        stepName = "Media_Sequence.Media_id -> PhylogeneticTree_id";
420
        tableName = "Media_Sequence";
421
        oldColumnName = "media_id";
422
        newColumnName = "phylogenetictree_id";
423
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
424
        stepList.add(step);
425

    
426

    
427
        //RelationshipTermBase_inverseRepresentation.DefinedTermBase_id ->RelationshipTermBase_id
428
        stepName = "RelationshipTermBase_inverseRepresentation.DefinedTermBase_id ->RelationshipTermBase_id";
429
        tableName = "RelationshipTermBase_inverseRepresentation";
430
        oldColumnName = "definedtermbase_id";
431
        newColumnName = "relationshiptermbase_id";
432
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
433
        stepList.add(step);
434

    
435
        //TaxonInteraction_LanguageString.DescriptionElementBase_id -> TaxonInteraction_id
436
        stepName = "TaxonInteraction_LanguageString.DescriptionElementBase_id -> TaxonInteraction_id";
437
        tableName = "TaxonInteraction_LanguageString";
438
        oldColumnName = "descriptionelementbase_id";
439
        newColumnName = "taxoninteraction_id";
440
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
441
        stepList.add(step);
442

    
443
        //IndividualAssociation_LanguageString.DescriptionElementBase_id -> IndividualsAssociation_id
444
        stepName = "IndividualAssociation_LanguageString.DescriptionElementBase_id -> IndividualsAssociation_id";
445
        tableName = "IndividualAssociation_LanguageString";
446
        oldColumnName = "descriptionelementbase_id";
447
        newColumnName = "individualsassociation_id";
448
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
449
        stepList.add(step);
450

    
451
        //Media_Representation.Media_id -> MediaKey_id
452
        stepName = "Media_Representation.Media_id -> MediaKey_id";
453
        tableName = "Media_Representation";
454
        oldColumnName = "media_id";
455
        newColumnName = "mediakey_id";
456
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
457
        stepList.add(step);
458

    
459
        //RightsInfo_Annotation. RightsInfo_id->Rights_id (see AssociationOverrides on class level)
460
        stepName = "RightsInfo_Annotation. RightsInfo_id->Rights_id";
461
        tableName = "RightsInfo_Annotation";
462
        oldColumnName = "rightsinfo_id";
463
        newColumnName = "rights_id";
464
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
465
        stepList.add(step);
466

    
467
        // RightsInfo_Marker. RightsInfo_id->Rights_id (see AssociationOverrides on class level)
468
        stepName = "RightsInfo_Marker. RightsInfo_id->Rights_id";
469
        tableName = "RightsInfo_Marker";
470
        oldColumnName = "rightsinfo_id";
471
        newColumnName = "rights_id";
472
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
473
        stepList.add(step);
474

    
475
        // WorkingSet_DescriptionBase.workingSet_id->workingSets_id
476
        stepName = "WorkingSet_DescriptionBase.workingSet_id->workingSets_id";
477
        tableName = "WorkingSet_DescriptionBase";
478
        oldColumnName = "workingSet_id";
479
        newColumnName = "workingSets_id";
480
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
481
        stepList.add(step);
482

    
483
        // IndividualAssociation_LanguageString -> IndividualsAssociation_LanguageString
484
        stepName = "IndividualAssociation_LanguageString -> IndividualsAssociation_LanguageString";
485
        oldTableName = "IndividualAssociation_LanguageString";
486
        newTableName = "IndividualsAssociation_LanguageString";
487
        step = TableNameChanger.NewInstance(stepName, oldTableName, newTableName, INCLUDE_AUDIT);
488
        stepList.add(step);
489

    
490
        //Contact tables
491
        // AgentBase_contact_emailaddresses-> AgentBase_contact_emailAddresses
492
        //in 2 steps to avoid "table already exists" on non sensitive systems
493
        stepName = "AgentBase_contact_emailaddresses-> AgentBase_contact_emailAddresses(I)";
494
        oldTableName = "AgentBase_contact_emailaddresses";
495
        newTableName = "AgentBase_contact_emailaddresses2";
496
        step = TableNameChanger.NewInstance(stepName, oldTableName, newTableName, INCLUDE_AUDIT);
497
        stepList.add(step);
498
        stepName = "AgentBase_contact_emailaddresses-> AgentBase_contact_emailAddresses(II)";
499
        oldTableName = "AgentBase_contact_emailaddresses2";
500
        newTableName = "AgentBase_contact_emailAddresses";
501
        step = TableNameChanger.NewInstance(stepName, oldTableName, newTableName, INCLUDE_AUDIT);
502
        stepList.add(step);
503

    
504
        // AgentBase_contact_faxnumbers-> AgentBase_contact_faxNumbers
505
        stepName = "AgentBase_contact_faxnumbers-> AgentBase_contact_faxNumbers(I)";
506
        oldTableName = "AgentBase_contact_faxnumbers";
507
        newTableName = "AgentBase_contact_faxnumbers2";
508
        step = TableNameChanger.NewInstance(stepName, oldTableName, newTableName, INCLUDE_AUDIT);
509
        stepList.add(step);
510
        stepName = "AgentBase_contact_faxnumbers-> AgentBase_contact_faxNumbers(II)";
511
        oldTableName = "AgentBase_contact_faxnumbers2";
512
        newTableName = "AgentBase_contact_faxNumbers";
513
        step = TableNameChanger.NewInstance(stepName, oldTableName, newTableName, INCLUDE_AUDIT);
514
        stepList.add(step);
515

    
516
        // AgentBase_contact_phoneNumbers-> AgentBase_contact_phoneNumbers
517
        stepName = "AgentBase_contact_phonenumbers-> AgentBase_contact_phoneNumbers(I)";
518
        oldTableName = "AgentBase_contact_phonenumbers";
519
        newTableName = "AgentBase_contact_phonenumbers2";
520
        step = TableNameChanger.NewInstance(stepName, oldTableName, newTableName, INCLUDE_AUDIT);
521
        stepList.add(step);
522
        stepName = "AgentBase_contact_phonenumbers-> AgentBase_contact_phoneNumbers(II)";
523
        oldTableName = "AgentBase_contact_phonenumbers2";
524
        newTableName = "AgentBase_contact_phoneNumbers";
525
        step = TableNameChanger.NewInstance(stepName, oldTableName, newTableName, INCLUDE_AUDIT);
526
        stepList.add(step);
527
    }
528

    
529
    @Override
530
	public ISchemaUpdater getNextUpdater() {
531
		return null;
532
	}
533

    
534
	@Override
535
	public ISchemaUpdater getPreviousUpdater() {
536
		return SchemaUpdater_35_36.NewInstance();
537
	}
538

    
539
}
(2-2/3)