Project

General

Profile

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

    
10
package eu.etaxonomy.cdm.database.update.v30_40;
11

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

    
15
import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;
16

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

    
26
/**
27
 * @author a.mueller
28
 * @since 16.04.2016
29
 */
30
public class SchemaUpdater_36_40 extends SchemaUpdaterBase {
31

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

    
37
	// ********************** FACTORY METHOD *************************************
38

    
39
	public static SchemaUpdater_36_40 NewInstance() {
40
		return new SchemaUpdater_36_40();
41
	}
42

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

    
51
	@Override
52
	protected List<ISchemaUpdaterStep> getUpdaterList() {
53

    
54
		String stepName;
55
		String tableName;
56
		String query;
57
		String newColumnName;
58
		String oldColumnName;
59

    
60
		List<ISchemaUpdaterStep> stepList = new ArrayList<>();
61

    
62
        //#5606
63
        //Add preferred stable URI to SpecimenOrObservation
64
        stepName = "Add preferred stable URI to SpecimenOrObservation";
65
        tableName = "SpecimenOrObservationBase";
66
        newColumnName = "preferredStableUri";
67
        ColumnAdder.NewClobInstance(stepList, stepName, tableName, newColumnName, INCLUDE_AUDIT);
68

    
69
        //#5717
70
        //Add sec micro reference
71
        stepName = "Add secMicroReference to TaxonBase";
72
        tableName = "TaxonBase";
73
        newColumnName = "secMicroReference";
74
        ColumnAdder.NewStringInstance(stepList, stepName, tableName, newColumnName, INCLUDE_AUDIT);
75

    
76
        //#5718
77
        //Remove autoincrement from AuditEvent.revisionnumber if necessary
78
        stepName = "Remove autoincrement from AuditEvent.revisionnumber";
79
        RevisionNumberUpdater.NewInstance(stepList, stepName);
80

    
81
        //#5734
82
        //Add symbol to terms
83
        stepName = "Add symbols to terms";
84
        tableName = "DefinedTermBase";
85
        newColumnName = "symbol";
86
        ColumnAdder.NewStringInstance(stepList, stepName, tableName, newColumnName, 30, INCLUDE_AUDIT);
87

    
88
        stepName = "Update symbols for terms";
89
        query = "UPDATE @@DefinedTermBase@@ SET symbol = idInVocabulary WHERE idInVocabulary <> '' AND termType IN ('PAT','TRT')";
90
        SimpleSchemaUpdaterStep.NewNonAuditedInstance(stepList, stepName, query, -99);
91

    
92
        //Add inverse symbol to terms
93
        stepName = "Add inverse symbol to terms";
94
        tableName = "DefinedTermBase";
95
        newColumnName = "inverseSymbol";
96
        ColumnAdder.NewStringInstance(stepList, stepName, tableName, newColumnName, 30, INCLUDE_AUDIT);
97

    
98
        stepName = "Update symbols for terms";
99
        query = "UPDATE DefinedTermBase dtb "
100
            + "SET inverseSymbol = ( " +
101
                " SELECT  r.abbreviatedlabel " +
102
                " FROM RelationshipTermBase_inverseRepresentation MN " +
103
                    " INNER JOIN Representation r ON r.id = MN.inverserepresentations_id " +
104
                " WHERE dtb.id = MN.DefinedTermBase_id AND r.abbreviatedlabel <> '' ) "
105
            + " WHERE termType IN ('PAT','TRT') ";
106
        SimpleSchemaUpdaterStep.NewNonAuditedInstance(stepList, stepName, query, -99);
107

    
108
        //#5369
109
        renameColumnsAccordingToHibernate5(stepList);
110

    
111
        //Update xxxObj_type  (#3701)
112
        ReferencedObjTypeUpdater.NewInstance(stepList);
113

    
114
        //remove bidirectionality from supplemental data #5743
115
        //annotation
116
        stepName = "Remove Annotation.annotatedObj_type";
117
        tableName = "Annotation";
118
        oldColumnName = "annotatedObj_type";
119
        ColumnRemover.NewInstance(stepList, stepName, tableName, oldColumnName, ! INCLUDE_AUDIT);
120

    
121
        stepName = "Remove Annotation.annotatedObj_id";
122
        tableName = "Annotation";
123
        oldColumnName = "annotatedObj_id";
124
        ColumnRemover.NewInstance(stepList, stepName, tableName, oldColumnName, ! INCLUDE_AUDIT);
125

    
126
        //marker
127
        stepName = "Remove Marker.markedObj_type";
128
        tableName = "Marker";
129
        oldColumnName = "markedObj_type";
130
        ColumnRemover.NewInstance(stepList, stepName, tableName, oldColumnName, ! INCLUDE_AUDIT);
131

    
132
        stepName = "Remove Marker.markedObj_id";
133
        tableName = "Marker";
134
        oldColumnName = "markedObj_id";
135
        ColumnRemover.NewInstance(stepList, stepName, tableName, oldColumnName, ! INCLUDE_AUDIT);
136

    
137
        //extension
138
        stepName = "Remove Extension.extendedObj_type";
139
        tableName = "Extension";
140
        oldColumnName = "extendedObj_type";
141
        ColumnRemover.NewInstance(stepList, stepName, tableName, oldColumnName, ! INCLUDE_AUDIT);
142

    
143
        stepName = "Remove Extension.extendedObj_id";
144
        tableName = "Extension";
145
        oldColumnName = "extendedObj_id";
146
        ColumnRemover.NewInstance(stepList, stepName, tableName, oldColumnName, ! INCLUDE_AUDIT);
147

    
148
        //sources
149
        stepName = "Remove OriginalSourceBase.sourcedObj_type";
150
        tableName = "OriginalSourceBase";
151
        oldColumnName = "sourcedObj_type";
152
        ColumnRemover.NewInstance(stepList, stepName, tableName, oldColumnName, ! INCLUDE_AUDIT);
153

    
154
        stepName = "Remove OriginalSourceBase.sourcedObj_id";
155
        tableName = "OriginalSourceBase";
156
        oldColumnName = "sourcedObj_id";
157
        ColumnRemover.NewInstance(stepList, stepName, tableName, oldColumnName, ! INCLUDE_AUDIT);
158

    
159
        //identifier
160
        stepName = "Remove Identifier.identifiedObj_type";
161
        tableName = "Identifier";
162
        oldColumnName = "identifiedObj_type";
163
        ColumnRemover.NewInstance(stepList, stepName, tableName, oldColumnName, ! INCLUDE_AUDIT);
164

    
165
        stepName = "Remove Identifier.identifiedObj_id";
166
        tableName = "Identifier";
167
        oldColumnName = "identifiedObj_id";
168
        ColumnRemover.NewInstance(stepList, stepName, tableName, oldColumnName, ! INCLUDE_AUDIT);
169

    
170
        return stepList;
171
	}
172

    
173

    
174
	//#5369
175
    private void renameColumnsAccordingToHibernate5(List<ISchemaUpdaterStep> stepList) {
176

    
177
        //AgenBase_AgentBase.AgentBase_ID  -> Team_ID
178
        String stepName = "Rename columns according to hibernate5";
179
        String tableName = "AgentBase_AgentBase";
180
        String oldColumnName = "agentbase_id";
181
        String newColumnName = "team_id";
182
        ColumnNameChanger.NewIntegerInstance(stepList, stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
183

    
184
        //DescriptionElementBase_LanguageString.DescriptionElementBase_ID -> TextData_ID
185
        stepName = "Rename DescriptionElementBase_LanguageString.DescriptionElementBase_ID";
186
        tableName = "DescriptionElementBase_LanguageString";
187
        oldColumnName = "descriptionElementBase_id";
188
        newColumnName = "textdata_id";
189
        ColumnNameChanger.NewIntegerInstance(stepList, stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
190

    
191
        //AgentBase_DefinedTermBase.AgentBase_ID -> Institution_id
192
        stepName = "Rename AgentBase_DefinedTermBase.AgentBase_ID -> Institution_id";
193
        tableName = "AgentBase_DefinedTermBase";
194
        oldColumnName = "agentbase_id";
195
        newColumnName = "institution_id";
196
        ColumnNameChanger.NewIntegerInstance(stepList, stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
197

    
198
        //PermissionGroup_GrantedAuthorityImpl.PermsiionsGroup_id -> Group_id
199
        stepName = "PermissionGroup_GrantedAuthorityImpl.PermsiionsGroup_id -> Group_id ";
200
        tableName = "PermissionGroup_GrantedAuthorityImpl";
201
        oldColumnName = "Permissiongroup_id";
202
        newColumnName = "group_id";
203
        ColumnNameChanger.NewIntegerInstance(stepList, stepName, tableName, oldColumnName, newColumnName, ! INCLUDE_AUDIT);
204

    
205
        //UserAccount_GrantedAuthorityImpl.UserAccount_id -> User_id
206
        stepName = "UserAccount_GrantedAuthorityImpl.UserAccount_id -> User_id ";
207
        tableName = "UserAccount_GrantedAuthorityImpl";
208
        oldColumnName = "useraccount_id";
209
        newColumnName = "user_id";
210
        ColumnNameChanger.NewIntegerInstance(stepList, stepName, tableName, oldColumnName, newColumnName, ! INCLUDE_AUDIT);
211

    
212
        //DefinedTermBase_RecommendedModifierEnumeration.DefinedTermBase_id -> Feature_id
213
        stepName = "DefinedTermBase_RecommendedModifierEnumeration.DefinedTermBase_id -> Feature_id";
214
        tableName = "DefinedTermBase_RecommendedModifierEnumeration";
215
        oldColumnName = "definedtermbase_id";
216
        newColumnName = "feature_id";
217
        ColumnNameChanger.NewIntegerInstance(stepList, stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
218

    
219
        //DefinedTermBase_StatisticalMeasure.DefinedTermBase_id -> Feature_id
220
        stepName = "DefinedTermBase_StatisticalMeasure.DefinedTermBase_id -> Feature_id";
221
        tableName = "DefinedTermBase_StatisticalMeasure";
222
        oldColumnName = "definedtermbase_id";
223
        newColumnName = "feature_id";
224
        ColumnNameChanger.NewIntegerInstance(stepList, stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
225

    
226
        //DefinedTermBase_SupportedCategoricalEnumeration.DefinedTermBase_id -> Feature_id
227
        stepName = "DefinedTermBase_SupportedCategoricalEnumeration.DefinedTermBase_id -> Feature_id";
228
        tableName = "DefinedTermBase_SupportedCategoricalEnumeration";
229
        oldColumnName = "definedtermbase_id";
230
        newColumnName = "feature_id";
231
        ColumnNameChanger.NewIntegerInstance(stepList, stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
232

    
233
        //DefinedTermBase_MeasurementUnit.DefinedTermBase_id -> Feature_id
234
        stepName = "DefinedTermBase_MeasurementUnit.DefinedTermBase_id -> Feature_id";
235
        tableName = "DefinedTermBase_MeasurementUnit";
236
        oldColumnName = "definedtermbase_id";
237
        newColumnName = "feature_id";
238
        ColumnNameChanger.NewIntegerInstance(stepList, stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
239

    
240
        //Media_TaxonBase.Media_id -> MediaKey_id
241
        stepName = "Media_TaxonBase.DefinedTermBase_id -> Feature_id";
242
        tableName = "Media_TaxonBase";
243
        oldColumnName = "media_id";
244
        newColumnName = "mediakey_id";
245
        ColumnNameChanger.NewIntegerInstance(stepList, stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
246

    
247
        //Rename Media_TaxonBase -> MediaKey_CoveredTaxon
248
        stepName = "Rename Media_TaxonBase -> MediaKey_CoveredTaxon";
249
        String oldTableName = "Media_TaxonBase";
250
        String newTableName = "MediaKey_CoveredTaxon";
251
        TableNameChanger.NewInstance(stepList, stepName, oldTableName, newTableName, INCLUDE_AUDIT);
252

    
253
        //MediaKey_NamedArea.Media_id -> MediaKey_id
254
        stepName = "MediaKey_NamedArea.Media_id -> MediaKey_id";
255
        tableName = "MediaKey_NamedArea";
256
        oldColumnName = "media_id";
257
        newColumnName = "mediakey_id";
258
        ColumnNameChanger.NewIntegerInstance(stepList, stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
259

    
260
        //MediaKey_Scope.Media_id -> MediaKey_id
261
        stepName = "MediaKey_Scope.Media_id -> MediaKey_id";
262
        tableName = "MediaKey_Scope";
263
        oldColumnName = "media_id";
264
        newColumnName = "mediakey_id";
265
        ColumnNameChanger.NewIntegerInstance(stepList, stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
266

    
267
        //Rename MediaKey_Taxon -> MediaKey_TaxonScope
268
        stepName = "Rename MediaKey_Taxon -> MediaKey_TaxonScope";
269
        oldTableName = "MediaKey_Taxon";
270
        newTableName = "MediaKey_TaxonScope";
271
        TableNameChanger.NewInstance(stepList, stepName, oldTableName, newTableName, INCLUDE_AUDIT);
272

    
273
        //MediaKey_TaxonScope.taxon_id -> taxonomicScope_id
274
        stepName = "MediaKey_TaxonScope.taxon_id -> taxonomicScope_id";
275
        tableName = "MediaKey_TaxonScope";
276
        oldColumnName = "taxon_id";
277
        newColumnName = "taxonomicScope_id";
278
        ColumnNameChanger.NewIntegerInstance(stepList, stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
279

    
280
        //Rename WorkingSet_TaxonBase -> MultiAccessKey_CoveredTaxon
281
        stepName = "Rename WorkingSet_TaxonBase -> MultiAccessKey_CoveredTaxon";
282
        oldTableName = "WorkingSet_TaxonBase";
283
        newTableName = "MultiAccessKey_CoveredTaxon";
284
        TableNameChanger.NewInstance(stepList, stepName, oldTableName, newTableName, INCLUDE_AUDIT);
285

    
286
        //MultiAccessKey_CoveredTaxon.WorkingSet_id -> MultiAccessKey_id
287
        stepName = "MultiAccessKey_CoveredTaxon.WorkingSet_id -> MultiAccessKey_id";
288
        tableName = "MultiAccessKey_CoveredTaxon";
289
        oldColumnName = "workingset_id";
290
        newColumnName = "multiaccesskey_id";
291
        ColumnNameChanger.NewIntegerInstance(stepList, stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
292
//         (also rename table)
293

    
294
        //MultiAccessKey_NamedArea.WorkingSet_id -> MultiAccessKey_id
295
        stepName = "MultiAccessKey_NamedArea.WorkingSet_id -> MultiAccessKey_id";
296
        tableName = "MultiAccessKey_NamedArea";
297
        oldColumnName = "workingset_id";
298
        newColumnName = "multiaccesskey_id";
299
        ColumnNameChanger.NewIntegerInstance(stepList, stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
300

    
301
        //MultiAccessKey_Scope.WorkingSet_id -> MultiAccessKey_id
302
        stepName = "MultiAccessKey_Scope.WorkingSet_id -> MultiAccessKey_id ";
303
        tableName = "MultiAccessKey_Scope";
304
        oldColumnName = "workingset_id";
305
        newColumnName = "multiaccesskey_id";
306
        ColumnNameChanger.NewIntegerInstance(stepList, stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
307

    
308
        //Rename MultiAccessKey_Taxon -> MultiAccessKey_TaxonScope
309
        stepName = "Rename MultiAccessKey_Taxon -> MultiAccessKey_TaxonScope";
310
        oldTableName = "MultiAccessKey_Taxon";
311
        newTableName = "MultiAccessKey_TaxonScope";
312
        TableNameChanger.NewInstance(stepList, stepName, oldTableName, newTableName, INCLUDE_AUDIT);
313

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

    
321
        //DescriptionBase_Scope.DescriptionBase_id -> TaxonDescription_id
322
        stepName = "DescriptionBase_Scope.DescriptionBase_id -> TaxonDescription_id";
323
        tableName = "DescriptionBase_Scope";
324
        oldColumnName = "descriptionbase_id";
325
        newColumnName = "taxondescription_id";
326
        ColumnNameChanger.NewIntegerInstance(stepList, stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
327

    
328
        //DescriptionBase_GeoScope.DescriptionBase_id -> TaxonDescription_id
329
        stepName = "DescriptionBase_GeoScope.DescriptionBase_id -> TaxonDescription_id";
330
        tableName = "DescriptionBase_GeoScope";
331
        oldColumnName = "descriptionbase_id";
332
        newColumnName = "taxondescription_id";
333
        ColumnNameChanger.NewIntegerInstance(stepList, stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
334

    
335
        //DefinedTermBase_Continent.DefinedTermBase_id -> Country_id
336
        stepName = "DefinedTermBase_Continent.DefinedTermBase_id -> Country_id";
337
        tableName = "DefinedTermBase_Continent";
338
        oldColumnName = "definedtermbase_id";
339
        newColumnName = "country_id";
340
        ColumnNameChanger.NewIntegerInstance(stepList, stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
341

    
342
        //DefinedTermBase_Country.DefinedTermBase_id -> NamedArea_id
343
        stepName = "DefinedTermBase_Country.DefinedTermBase_id -> NamedArea_id";
344
        tableName = "DefinedTermBase_Country";
345
        oldColumnName = "definedtermbase_id";
346
        newColumnName = "namedarea_id";
347
        ColumnNameChanger.NewIntegerInstance(stepList, stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
348

    
349
        //Media_Sequence.Media_id -> PhylogeneticTree_id
350
        stepName = "Media_Sequence.Media_id -> PhylogeneticTree_id";
351
        tableName = "Media_Sequence";
352
        oldColumnName = "media_id";
353
        newColumnName = "phylogenetictree_id";
354
        ColumnNameChanger.NewIntegerInstance(stepList, stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
355

    
356
        //RelationshipTermBase_inverseRepresentation.DefinedTermBase_id ->RelationshipTermBase_id
357
        stepName = "RelationshipTermBase_inverseRepresentation.DefinedTermBase_id ->RelationshipTermBase_id";
358
        tableName = "RelationshipTermBase_inverseRepresentation";
359
        oldColumnName = "definedtermbase_id";
360
        newColumnName = "relationshiptermbase_id";
361
        ColumnNameChanger.NewIntegerInstance(stepList, stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
362

    
363
        //TaxonInteraction_LanguageString.DescriptionElementBase_id -> TaxonInteraction_id
364
        stepName = "TaxonInteraction_LanguageString.DescriptionElementBase_id -> TaxonInteraction_id";
365
        tableName = "TaxonInteraction_LanguageString";
366
        oldColumnName = "descriptionelementbase_id";
367
        newColumnName = "taxoninteraction_id";
368
        ColumnNameChanger.NewIntegerInstance(stepList, stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
369

    
370
        //IndividualAssociation_LanguageString.DescriptionElementBase_id -> IndividualsAssociation_id
371
        stepName = "IndividualAssociation_LanguageString.DescriptionElementBase_id -> IndividualsAssociation_id";
372
        tableName = "IndividualAssociation_LanguageString";
373
        oldColumnName = "descriptionelementbase_id";
374
        newColumnName = "individualsassociation_id";
375
        ColumnNameChanger.NewIntegerInstance(stepList, stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
376

    
377
        //Media_Representation.Media_id -> MediaKey_id
378
        stepName = "Media_Representation.Media_id -> MediaKey_id";
379
        tableName = "Media_Representation";
380
        oldColumnName = "media_id";
381
        newColumnName = "mediakey_id";
382
        ColumnNameChanger.NewIntegerInstance(stepList, stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
383

    
384
        //RightsInfo_Annotation. RightsInfo_id->Rights_id (see AssociationOverrides on class level)
385
        stepName = "RightsInfo_Annotation. RightsInfo_id->Rights_id";
386
        tableName = "RightsInfo_Annotation";
387
        oldColumnName = "rightsinfo_id";
388
        newColumnName = "rights_id";
389
        ColumnNameChanger.NewIntegerInstance(stepList, stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
390

    
391
        // RightsInfo_Marker. RightsInfo_id->Rights_id (see AssociationOverrides on class level)
392
        stepName = "RightsInfo_Marker. RightsInfo_id->Rights_id";
393
        tableName = "RightsInfo_Marker";
394
        oldColumnName = "rightsinfo_id";
395
        newColumnName = "rights_id";
396
        ColumnNameChanger.NewIntegerInstance(stepList, stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
397

    
398
        // WorkingSet_DescriptionBase.workingSet_id->workingSets_id
399
        stepName = "WorkingSet_DescriptionBase.workingSet_id->workingSets_id";
400
        tableName = "WorkingSet_DescriptionBase";
401
        oldColumnName = "workingSet_id";
402
        newColumnName = "workingSets_id";
403
        ColumnNameChanger.NewIntegerInstance(stepList, stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
404

    
405
        // IndividualAssociation_LanguageString -> IndividualsAssociation_LanguageString
406
        stepName = "IndividualAssociation_LanguageString -> IndividualsAssociation_LanguageString";
407
        oldTableName = "IndividualAssociation_LanguageString";
408
        newTableName = "IndividualsAssociation_LanguageString";
409
        TableNameChanger.NewInstance(stepList, stepName, oldTableName, newTableName, INCLUDE_AUDIT);
410

    
411
        //Contact tables
412
        // AgentBase_contact_emailaddresses-> AgentBase_contact_emailAddresses
413
        //in 2 steps to avoid "table already exists" on non sensitive systems
414
        stepName = "AgentBase_contact_emailaddresses-> AgentBase_contact_emailAddresses(I)";
415
        oldTableName = "AgentBase_contact_emailaddresses";
416
        newTableName = "AgentBase_contact_emailaddresses2";
417
        TableNameChanger.NewInstance(stepList, stepName, oldTableName, newTableName, INCLUDE_AUDIT);
418
        stepName = "AgentBase_contact_emailaddresses-> AgentBase_contact_emailAddresses(II)";
419
        oldTableName = "AgentBase_contact_emailaddresses2";
420
        newTableName = "AgentBase_contact_emailAddresses";
421
        TableNameChanger.NewInstance(stepList, stepName, oldTableName, newTableName, INCLUDE_AUDIT);
422

    
423
        // AgentBase_contact_faxnumbers-> AgentBase_contact_faxNumbers
424
        stepName = "AgentBase_contact_faxnumbers-> AgentBase_contact_faxNumbers(I)";
425
        oldTableName = "AgentBase_contact_faxnumbers";
426
        newTableName = "AgentBase_contact_faxnumbers2";
427
        TableNameChanger.NewInstance(stepList, stepName, oldTableName, newTableName, INCLUDE_AUDIT);
428
        stepName = "AgentBase_contact_faxnumbers-> AgentBase_contact_faxNumbers(II)";
429
        oldTableName = "AgentBase_contact_faxnumbers2";
430
        newTableName = "AgentBase_contact_faxNumbers";
431
        TableNameChanger.NewInstance(stepList, stepName, oldTableName, newTableName, INCLUDE_AUDIT);
432

    
433
        // AgentBase_contact_phoneNumbers-> AgentBase_contact_phoneNumbers
434
        stepName = "AgentBase_contact_phonenumbers-> AgentBase_contact_phoneNumbers(I)";
435
        oldTableName = "AgentBase_contact_phonenumbers";
436
        newTableName = "AgentBase_contact_phonenumbers2";
437
        TableNameChanger.NewInstance(stepList, stepName, oldTableName, newTableName, INCLUDE_AUDIT);
438
        stepName = "AgentBase_contact_phonenumbers-> AgentBase_contact_phoneNumbers(II)";
439
        oldTableName = "AgentBase_contact_phonenumbers2";
440
        newTableName = "AgentBase_contact_phoneNumbers";
441
        TableNameChanger.NewInstance(stepList, stepName, oldTableName, newTableName, INCLUDE_AUDIT);
442
    }
443

    
444
	@Override
445
	public ISchemaUpdater getPreviousUpdater() {
446
		return SchemaUpdater_35_36.NewInstance();
447
	}
448

    
449
}
(13-13/16)