Project

General

Profile

Download (24.2 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 query;
61
		String newColumnName;
62
		String oldColumnName;
63
		String columnNames[];
64
		String referencedTables[];
65
		String columnTypes[];
66
//		boolean includeCdmBaseAttributes = false;
67

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

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

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

    
86
        //#5718
87
        //Remove autoincrement from AuditEvent.revisionnumber if necessary
88
        stepName = "Remove autoincrement from AuditEvent.revisionnumber";
89
        RevisionNumberUpdater.NewInstance(stepName, stepList);
90

    
91

    
92
        //#5734
93
        //Add symbol to terms
94
        stepName = "Add symbols to terms";
95
        tableName = "DefinedTermBase";
96
        newColumnName = "symbol";
97
        step = ColumnAdder.NewStringInstance(stepName, tableName, newColumnName, 30, INCLUDE_AUDIT);
98
        stepList.add(step);
99

    
100
        stepName = "Update symbols for terms";
101
        query = "UPDATE @@DefinedTermBase@@ SET symbol = idInVocabulary WHERE idInVocabulary <> '' AND termType IN ('PAT','TRT')";
102
        step = SimpleSchemaUpdaterStep.NewNonAuditedInstance(stepName, query, -99);
103
        stepList.add(step);
104

    
105

    
106
        //Add inverse symbol to terms
107
        stepName = "Add inverse symbol to terms";
108
        tableName = "DefinedTermBase";
109
        newColumnName = "inverseSymbol";
110
        step = ColumnAdder.NewStringInstance(stepName, tableName, newColumnName, 30, INCLUDE_AUDIT);
111
        stepList.add(step);
112

    
113
        stepName = "Update symbols for terms";
114
        query = "UPDATE DefinedTermBase dtb "
115
            + "SET inverseSymbol = ( " +
116
                " SELECT  r.abbreviatedlabel " +
117
                " FROM RelationshipTermBase_inverseRepresentation MN " +
118
                    " INNER JOIN Representation r ON r.id = MN.inverserepresentations_id " +
119
                " WHERE dtb.id = MN.DefinedTermBase_id AND r.abbreviatedlabel <> '' ) "
120
            + " WHERE termType IN ('PAT','TRT') ";
121
        step = SimpleSchemaUpdaterStep.NewNonAuditedInstance(stepName, query, -99);
122
        stepList.add(step);
123

    
124
        //#5369
125
        renameColumnsAccordingToHibernate5(stepList);
126

    
127
        //Update xxxObj_type  (#3701)
128
        step = ReferencedObjTypeUpdater.NewInstance();
129
        stepList.add(step);
130

    
131
        //remove bidirectionality from supplemental data #5743
132
        //annotation
133
        stepName = "Remove Annotation.annotatedObj_type";
134
        tableName = "Annotation";
135
        oldColumnName = "annotatedObj_type";
136
        step = ColumnRemover.NewInstance(stepName, tableName, oldColumnName, ! INCLUDE_AUDIT);
137
        stepList.add(step);
138

    
139
        stepName = "Remove Annotation.annotatedObj_id";
140
        tableName = "Annotation";
141
        oldColumnName = "annotatedObj_id";
142
        step = ColumnRemover.NewInstance(stepName, tableName, oldColumnName, ! INCLUDE_AUDIT);
143
        stepList.add(step);
144

    
145
        //marker
146
        stepName = "Remove Marker.markedObj_type";
147
        tableName = "Marker";
148
        oldColumnName = "markedObj_type";
149
        step = ColumnRemover.NewInstance(stepName, tableName, oldColumnName, ! INCLUDE_AUDIT);
150
        stepList.add(step);
151

    
152
        stepName = "Remove Marker.markedObj_id";
153
        tableName = "Marker";
154
        oldColumnName = "markedObj_id";
155
        step = ColumnRemover.NewInstance(stepName, tableName, oldColumnName, ! INCLUDE_AUDIT);
156
        stepList.add(step);
157

    
158
        //extension
159
        stepName = "Remove Extension.extendedObj_type";
160
        tableName = "Extension";
161
        oldColumnName = "extendedObj_type";
162
        step = ColumnRemover.NewInstance(stepName, tableName, oldColumnName, ! INCLUDE_AUDIT);
163
        stepList.add(step);
164

    
165
        stepName = "Remove Extension.extendedObj_id";
166
        tableName = "Extension";
167
        oldColumnName = "extendedObj_id";
168
        step = ColumnRemover.NewInstance(stepName, tableName, oldColumnName, ! INCLUDE_AUDIT);
169
        stepList.add(step);
170

    
171
        //sources
172
        stepName = "Remove OriginalSourceBase.sourcedObj_type";
173
        tableName = "OriginalSourceBase";
174
        oldColumnName = "sourcedObj_type";
175
        step = ColumnRemover.NewInstance(stepName, tableName, oldColumnName, ! INCLUDE_AUDIT);
176
        stepList.add(step);
177

    
178
        stepName = "Remove OriginalSourceBase.sourcedObj_id";
179
        tableName = "OriginalSourceBase";
180
        oldColumnName = "sourcedObj_id";
181
        step = ColumnRemover.NewInstance(stepName, tableName, oldColumnName, ! INCLUDE_AUDIT);
182
        stepList.add(step);
183

    
184
        //identifier
185
        stepName = "Remove Identifier.identifiedObj_type";
186
        tableName = "Identifier";
187
        oldColumnName = "identifiedObj_type";
188
        step = ColumnRemover.NewInstance(stepName, tableName, oldColumnName, ! INCLUDE_AUDIT);
189
        stepList.add(step);
190

    
191
        stepName = "Remove Identifier.identifiedObj_id";
192
        tableName = "Identifier";
193
        oldColumnName = "identifiedObj_id";
194
        step = ColumnRemover.NewInstance(stepName, tableName, oldColumnName, ! INCLUDE_AUDIT);
195
        stepList.add(step);
196

    
197
        return stepList;
198
	}
199

    
200

    
201
	//#5369
202
    private void renameColumnsAccordingToHibernate5(List<ISchemaUpdaterStep> stepList) {
203

    
204
        //AgenBase_AgentBase.AgentBase_ID  -> Team_ID
205
        String stepName = "Rename columns according to hibernate5";
206
        String tableName = "AgentBase_AgentBase";
207
        String oldColumnName = "agentbase_id";
208
        String newColumnName = "team_id";
209
        ISchemaUpdaterStep step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
210
        stepList.add(step);
211

    
212
        //DescriptionElementBase_LanguageString.DescriptionElementBase_ID -> TextData_ID
213
        stepName = "Rename DescriptionElementBase_LanguageString.DescriptionElementBase_ID";
214
        tableName = "DescriptionElementBase_LanguageString";
215
        oldColumnName = "descriptionElementBase_id";
216
        newColumnName = "textdata_id";
217
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
218
        stepList.add(step);
219

    
220
        //AgentBase_DefinedTermBase.AgentBase_ID -> Institution_id
221
        stepName = "Rename AgentBase_DefinedTermBase.AgentBase_ID -> Institution_id";
222
        tableName = "AgentBase_DefinedTermBase";
223
        oldColumnName = "agentbase_id";
224
        newColumnName = "institution_id";
225
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
226
        stepList.add(step);
227

    
228
        //PermissionGroup_GrantedAuthorityImpl.PermsiionsGroup_id -> Group_id
229
        stepName = "PermissionGroup_GrantedAuthorityImpl.PermsiionsGroup_id -> Group_id ";
230
        tableName = "PermissionGroup_GrantedAuthorityImpl";
231
        oldColumnName = "Permissiongroup_id";
232
        newColumnName = "group_id";
233
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, ! INCLUDE_AUDIT);
234
        stepList.add(step);
235

    
236
        //UserAccount_GrantedAuthorityImpl.UserAccount_id -> User_id
237
        stepName = "UserAccount_GrantedAuthorityImpl.UserAccount_id -> User_id ";
238
        tableName = "UserAccount_GrantedAuthorityImpl";
239
        oldColumnName = "useraccount_id";
240
        newColumnName = "user_id";
241
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, ! INCLUDE_AUDIT);
242
        stepList.add(step);
243

    
244
        //DefinedTermBase_RecommendedModifierEnumeration.DefinedTermBase_id -> Feature_id
245
        stepName = "DefinedTermBase_RecommendedModifierEnumeration.DefinedTermBase_id -> Feature_id";
246
        tableName = "DefinedTermBase_RecommendedModifierEnumeration";
247
        oldColumnName = "definedtermbase_id";
248
        newColumnName = "feature_id";
249
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
250
        stepList.add(step);
251

    
252
        //DefinedTermBase_StatisticalMeasure.DefinedTermBase_id -> Feature_id
253
        stepName = "DefinedTermBase_StatisticalMeasure.DefinedTermBase_id -> Feature_id";
254
        tableName = "DefinedTermBase_StatisticalMeasure";
255
        oldColumnName = "definedtermbase_id";
256
        newColumnName = "feature_id";
257
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
258
        stepList.add(step);
259

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

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

    
276
        //Media_TaxonBase.Media_id -> MediaKey_id
277
        stepName = "DefinedTermBase_MeasurementUnit.DefinedTermBase_id -> Feature_id";
278
        tableName = "Media_TaxonBase";
279
        oldColumnName = "media_id";
280
        newColumnName = "mediakey_id";
281
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
282
        stepList.add(step);
283

    
284
        //Rename Media_TaxonBase -> MediaKey_CoveredTaxon
285
        stepName = "Rename Media_TaxonBase -> MediaKey_CoveredTaxon";
286
        String oldTableName = "Media_TaxonBase";
287
        String newTableName = "MediaKey_CoveredTaxon";
288
        step = TableNameChanger.NewInstance(stepName, oldTableName, newTableName, INCLUDE_AUDIT);
289
        stepList.add(step);
290

    
291
        //MediaKey_NamedArea.Media_id -> MediaKey_id
292
        stepName = "MediaKey_NamedArea.Media_id -> MediaKey_id";
293
        tableName = "MediaKey_NamedArea";
294
        oldColumnName = "media_id";
295
        newColumnName = "mediakey_id";
296
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
297
        stepList.add(step);
298

    
299
        //MediaKey_Scope.Media_id -> MediaKey_id
300
        stepName = "MediaKey_Scope.Media_id -> MediaKey_id";
301
        tableName = "MediaKey_Scope";
302
        oldColumnName = "media_id";
303
        newColumnName = "mediakey_id";
304
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
305
        stepList.add(step);
306

    
307
        //Rename MediaKey_Taxon -> MediaKey_TaxonScope
308
        stepName = "Rename MediaKey_Taxon -> MediaKey_TaxonScope";
309
        oldTableName = "MediaKey_Taxon";
310
        newTableName = "MediaKey_TaxonScope";
311
        step = TableNameChanger.NewInstance(stepName, oldTableName, newTableName, INCLUDE_AUDIT);
312
        stepList.add(step);
313

    
314
        //MediaKey_TaxonScope.taxon_id -> taxonomicScope_id
315
        stepName = "MediaKey_TaxonScope.taxon_id -> taxonomicScope_id";
316
        tableName = "MediaKey_TaxonScope";
317
        oldColumnName = "taxon_id";
318
        newColumnName = "taxonomicScope_id";
319
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
320
        stepList.add(step);
321

    
322
        //Rename WorkingSet_TaxonBase -> MultiAccessKey_CoveredTaxon
323
        stepName = "Rename WorkingSet_TaxonBase -> MultiAccessKey_CoveredTaxon";
324
        oldTableName = "WorkingSet_TaxonBase";
325
        newTableName = "MultiAccessKey_CoveredTaxon";
326
        step = TableNameChanger.NewInstance(stepName, oldTableName, newTableName, INCLUDE_AUDIT);
327
        stepList.add(step);
328

    
329
        //MultiAccessKey_CoveredTaxon.WorkingSet_id -> MultiAccessKey_id
330
        stepName = "MultiAccessKey_CoveredTaxon.WorkingSet_id -> MultiAccessKey_id";
331
        tableName = "MultiAccessKey_CoveredTaxon";
332
        oldColumnName = "workingset_id";
333
        newColumnName = "multiaccesskey_id";
334
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
335
        stepList.add(step);
336
//         (also rename table)
337

    
338
        //MultiAccessKey_NamedArea.WorkingSet_id -> MultiAccessKey_id
339
        stepName = "MultiAccessKey_NamedArea.WorkingSet_id -> MultiAccessKey_id";
340
        tableName = "MultiAccessKey_NamedArea";
341
        oldColumnName = "workingset_id";
342
        newColumnName = "multiaccesskey_id";
343
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
344
        stepList.add(step);
345

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

    
354
        //Rename MultiAccessKey_Taxon -> MultiAccessKey_TaxonScope
355
        stepName = "Rename MultiAccessKey_Taxon -> MultiAccessKey_TaxonScope";
356
        oldTableName = "MultiAccessKey_Taxon";
357
        newTableName = "MultiAccessKey_TaxonScope";
358
        step = TableNameChanger.NewInstance(stepName, oldTableName, newTableName, INCLUDE_AUDIT);
359
        stepList.add(step);
360

    
361
        //MultiAccessKey_TaxonScope.taxon_id -> taxonomicScope_id
362
        stepName = "MultiAccessKey_TaxonScope.taxon_id -> taxonomicScope_id";
363
        tableName = "MultiAccessKey_TaxonScope";
364
        oldColumnName = "taxon_id";
365
        newColumnName = "taxonomicScope_id";
366
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
367
        stepList.add(step);
368

    
369
        //DescriptionBase_Scope.DescriptionBase_id -> TaxonDescription_id
370
        stepName = "DescriptionBase_Scope.DescriptionBase_id -> TaxonDescription_id";
371
        tableName = "DescriptionBase_Scope";
372
        oldColumnName = "descriptionbase_id";
373
        newColumnName = "taxondescription_id";
374
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
375
        stepList.add(step);
376

    
377
        //DescriptionBase_GeoScope.DescriptionBase_id -> TaxonDescription_id
378
        stepName = "DescriptionBase_GeoScope.DescriptionBase_id -> TaxonDescription_id";
379
        tableName = "DescriptionBase_GeoScope";
380
        oldColumnName = "descriptionbase_id";
381
        newColumnName = "taxondescription_id";
382
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
383
        stepList.add(step);
384

    
385
        //DefinedTermBase_Continent.DefinedTermBase_id -> Country_id
386
        stepName = "DefinedTermBase_Continent.DefinedTermBase_id -> Country_id";
387
        tableName = "DefinedTermBase_Continent";
388
        oldColumnName = "definedtermbase_id";
389
        newColumnName = "country_id";
390
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
391
        stepList.add(step);
392

    
393
        //DefinedTermBase_Country.DefinedTermBase_id -> NamedArea_id
394
        stepName = "DefinedTermBase_Country.DefinedTermBase_id -> NamedArea_id";
395
        tableName = "DefinedTermBase_Country";
396
        oldColumnName = "definedtermbase_id";
397
        newColumnName = "namedarea_id";
398
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
399
        stepList.add(step);
400

    
401
        //Media_Sequence.Media_id -> PhylogeneticTree_id
402
        stepName = "Media_Sequence.Media_id -> PhylogeneticTree_id";
403
        tableName = "Media_Sequence";
404
        oldColumnName = "media_id";
405
        newColumnName = "phylogenetictree_id";
406
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
407
        stepList.add(step);
408

    
409

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

    
418
        //TaxonInteraction_LanguageString.DescriptionElementBase_id -> TaxonInteraction_id
419
        stepName = "TaxonInteraction_LanguageString.DescriptionElementBase_id -> TaxonInteraction_id";
420
        tableName = "TaxonInteraction_LanguageString";
421
        oldColumnName = "descriptionelementbase_id";
422
        newColumnName = "taxoninteraction_id";
423
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
424
        stepList.add(step);
425

    
426
        //IndividualAssociation_LanguageString.DescriptionElementBase_id -> IndividualsAssociation_id
427
        stepName = "IndividualAssociation_LanguageString.DescriptionElementBase_id -> IndividualsAssociation_id";
428
        tableName = "IndividualAssociation_LanguageString";
429
        oldColumnName = "descriptionelementbase_id";
430
        newColumnName = "individualsassociation_id";
431
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
432
        stepList.add(step);
433

    
434
        //Media_Representation.Media_id -> MediaKey_id
435
        stepName = "Media_Representation.Media_id -> MediaKey_id";
436
        tableName = "Media_Representation";
437
        oldColumnName = "media_id";
438
        newColumnName = "mediakey_id";
439
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
440
        stepList.add(step);
441

    
442
        //RightsInfo_Annotation. RightsInfo_id->Rights_id (see AssociationOverrides on class level)
443
        stepName = "RightsInfo_Annotation. RightsInfo_id->Rights_id";
444
        tableName = "RightsInfo_Annotation";
445
        oldColumnName = "rightsinfo_id";
446
        newColumnName = "rights_id";
447
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
448
        stepList.add(step);
449

    
450
        // RightsInfo_Marker. RightsInfo_id->Rights_id (see AssociationOverrides on class level)
451
        stepName = "RightsInfo_Marker. RightsInfo_id->Rights_id";
452
        tableName = "RightsInfo_Marker";
453
        oldColumnName = "rightsinfo_id";
454
        newColumnName = "rights_id";
455
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
456
        stepList.add(step);
457

    
458
        // WorkingSet_DescriptionBase.workingSet_id->workingSets_id
459
        stepName = "WorkingSet_DescriptionBase.workingSet_id->workingSets_id";
460
        tableName = "WorkingSet_DescriptionBase";
461
        oldColumnName = "workingSet_id";
462
        newColumnName = "workingSets_id";
463
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
464
        stepList.add(step);
465

    
466
        // IndividualAssociation_LanguageString -> IndividualsAssociation_LanguageString
467
        stepName = "IndividualAssociation_LanguageString -> IndividualsAssociation_LanguageString";
468
        oldTableName = "IndividualAssociation_LanguageString";
469
        newTableName = "IndividualsAssociation_LanguageString";
470
        step = TableNameChanger.NewInstance(stepName, oldTableName, newTableName, INCLUDE_AUDIT);
471
        stepList.add(step);
472

    
473
        //Contact tables
474
        // AgentBase_contact_emailaddresses-> AgentBase_contact_emailAddresses
475
        //in 2 steps to avoid "table already exists" on non sensitive systems
476
        stepName = "AgentBase_contact_emailaddresses-> AgentBase_contact_emailAddresses(I)";
477
        oldTableName = "AgentBase_contact_emailaddresses";
478
        newTableName = "AgentBase_contact_emailaddresses2";
479
        step = TableNameChanger.NewInstance(stepName, oldTableName, newTableName, INCLUDE_AUDIT);
480
        stepList.add(step);
481
        stepName = "AgentBase_contact_emailaddresses-> AgentBase_contact_emailAddresses(II)";
482
        oldTableName = "AgentBase_contact_emailaddresses2";
483
        newTableName = "AgentBase_contact_emailAddresses";
484
        step = TableNameChanger.NewInstance(stepName, oldTableName, newTableName, INCLUDE_AUDIT);
485
        stepList.add(step);
486

    
487
        // AgentBase_contact_faxnumbers-> AgentBase_contact_faxNumbers
488
        stepName = "AgentBase_contact_faxnumbers-> AgentBase_contact_faxNumbers(I)";
489
        oldTableName = "AgentBase_contact_faxnumbers";
490
        newTableName = "AgentBase_contact_faxnumbers2";
491
        step = TableNameChanger.NewInstance(stepName, oldTableName, newTableName, INCLUDE_AUDIT);
492
        stepList.add(step);
493
        stepName = "AgentBase_contact_faxnumbers-> AgentBase_contact_faxNumbers(II)";
494
        oldTableName = "AgentBase_contact_faxnumbers2";
495
        newTableName = "AgentBase_contact_faxNumbers";
496
        step = TableNameChanger.NewInstance(stepName, oldTableName, newTableName, INCLUDE_AUDIT);
497
        stepList.add(step);
498

    
499
        // AgentBase_contact_phoneNumbers-> AgentBase_contact_phoneNumbers
500
        stepName = "AgentBase_contact_phonenumbers-> AgentBase_contact_phoneNumbers(I)";
501
        oldTableName = "AgentBase_contact_phonenumbers";
502
        newTableName = "AgentBase_contact_phonenumbers2";
503
        step = TableNameChanger.NewInstance(stepName, oldTableName, newTableName, INCLUDE_AUDIT);
504
        stepList.add(step);
505
        stepName = "AgentBase_contact_phonenumbers-> AgentBase_contact_phoneNumbers(II)";
506
        oldTableName = "AgentBase_contact_phonenumbers2";
507
        newTableName = "AgentBase_contact_phoneNumbers";
508
        step = TableNameChanger.NewInstance(stepName, oldTableName, newTableName, INCLUDE_AUDIT);
509
        stepList.add(step);
510
    }
511

    
512
    @Override
513
	public ISchemaUpdater getNextUpdater() {
514
		return null;
515
	}
516

    
517
	@Override
518
	public ISchemaUpdater getPreviousUpdater() {
519
		return SchemaUpdater_35_36.NewInstance();
520
	}
521

    
522
}
(3-3/4)