Project

General

Profile

Download (22.4 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.verseSymbol = ( " +
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.relationshiptermbase_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
        return stepList;
149
	}
150

    
151

    
152
	//#5369
153
    private void renameColumnsAccordingToHibernate5(List<ISchemaUpdaterStep> stepList) {
154

    
155
        //AgenBase_AgentBase.AgentBase_ID  -> Team_ID
156
        String stepName = "Rename columns according to hibernate5";
157
        String tableName = "AgentBase_AgentBase";
158
        String oldColumnName = "agentbase_id";
159
        String newColumnName = "team_id";
160
        ISchemaUpdaterStep step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
161
        stepList.add(step);
162

    
163
        //DescriptionElementBase_LanguageString.DescriptionElementBase_ID -> TextData_ID
164
        stepName = "Rename DescriptionElementBase_LanguageString.DescriptionElementBase_ID";
165
        tableName = "DescriptionElementBase_LanguageString";
166
        oldColumnName = "descriptionElementBase_id";
167
        newColumnName = "textdata_id";
168
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
169
        stepList.add(step);
170

    
171
        //AgentBase_DefinedTermBase.AgentBase_ID -> Institution_id
172
        stepName = "Rename AgentBase_DefinedTermBase.AgentBase_ID -> Institution_id";
173
        tableName = "AgentBase_DefinedTermBase";
174
        oldColumnName = "agentbase_id";
175
        newColumnName = "institution_id";
176
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
177
        stepList.add(step);
178

    
179
        //PermissionGroup_GrantedAuthorityImpl.PermsiionsGroup_id -> Group_id
180
        stepName = "PermissionGroup_GrantedAuthorityImpl.PermsiionsGroup_id -> Group_id ";
181
        tableName = "PermissionGroup_GrantedAuthorityImpl";
182
        oldColumnName = "Permissiongroup_id";
183
        newColumnName = "group_id";
184
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, ! INCLUDE_AUDIT);
185
        stepList.add(step);
186

    
187
        //UserAccount_GrantedAuthorityImpl.UserAccount_id -> User_id
188
        stepName = "UserAccount_GrantedAuthorityImpl.UserAccount_id -> User_id ";
189
        tableName = "UserAccount_GrantedAuthorityImpl";
190
        oldColumnName = "useraccount_id";
191
        newColumnName = "user_id";
192
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, ! INCLUDE_AUDIT);
193
        stepList.add(step);
194

    
195
        //DefinedTermBase_RecommendedModifierEnumeration.DefinedTermBase_id -> Feature_id
196
        stepName = "DefinedTermBase_RecommendedModifierEnumeration.DefinedTermBase_id -> Feature_id";
197
        tableName = "DefinedTermBase_RecommendedModifierEnumeration";
198
        oldColumnName = "definedtermbase_id";
199
        newColumnName = "feature_id";
200
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
201
        stepList.add(step);
202

    
203
        //DefinedTermBase_StatisticalMeasure.DefinedTermBase_id -> Feature_id
204
        stepName = "DefinedTermBase_StatisticalMeasure.DefinedTermBase_id -> Feature_id";
205
        tableName = "DefinedTermBase_StatisticalMeasure";
206
        oldColumnName = "definedtermbase_id";
207
        newColumnName = "feature_id";
208
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
209
        stepList.add(step);
210

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

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

    
227
        //Media_TaxonBase.Media_id -> MediaKey_id
228
        stepName = "DefinedTermBase_MeasurementUnit.DefinedTermBase_id -> Feature_id";
229
        tableName = "Media_TaxonBase";
230
        oldColumnName = "media_id";
231
        newColumnName = "mediakey_id";
232
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
233
        stepList.add(step);
234

    
235
        //Rename Media_TaxonBase -> MediaKey_CoveredTaxon
236
        stepName = "Rename Media_TaxonBase -> MediaKey_CoveredTaxon";
237
        String oldTableName = "Media_TaxonBase";
238
        String newTableName = "MediaKey_CoveredTaxon";
239
        step = TableNameChanger.NewInstance(stepName, oldTableName, newTableName, INCLUDE_AUDIT);
240
        stepList.add(step);
241

    
242
        //MediaKey_NamedArea.Media_id -> MediaKey_id
243
        stepName = "MediaKey_NamedArea.Media_id -> MediaKey_id";
244
        tableName = "MediaKey_NamedArea";
245
        oldColumnName = "media_id";
246
        newColumnName = "mediakey_id";
247
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
248
        stepList.add(step);
249

    
250
        //MediaKey_Scope.Media_id -> MediaKey_id
251
        stepName = "MediaKey_Scope.Media_id -> MediaKey_id";
252
        tableName = "MediaKey_Scope";
253
        oldColumnName = "media_id";
254
        newColumnName = "mediakey_id";
255
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
256
        stepList.add(step);
257

    
258
        //Rename MediaKey_Taxon -> MediaKey_TaxonScope
259
        stepName = "Rename MediaKey_Taxon -> MediaKey_TaxonScope";
260
        oldTableName = "MediaKey_Taxon";
261
        newTableName = "MediaKey_TaxonScope";
262
        step = TableNameChanger.NewInstance(stepName, oldTableName, newTableName, INCLUDE_AUDIT);
263
        stepList.add(step);
264

    
265
        //MediaKey_TaxonScope.taxon_id -> taxonomicScope_id
266
        stepName = "MediaKey_TaxonScope.taxon_id -> taxonomicScope_id";
267
        tableName = "MediaKey_TaxonScope";
268
        oldColumnName = "taxon_id";
269
        newColumnName = "taxonomicScope_id";
270
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
271
        stepList.add(step);
272

    
273
        //Rename WorkingSet_TaxonBase -> MultiAccessKey_CoveredTaxon
274
        stepName = "Rename WorkingSet_TaxonBase -> MultiAccessKey_CoveredTaxon";
275
        oldTableName = "WorkingSet_TaxonBase";
276
        newTableName = "MultiAccessKey_CoveredTaxon";
277
        step = TableNameChanger.NewInstance(stepName, oldTableName, newTableName, INCLUDE_AUDIT);
278
        stepList.add(step);
279

    
280
        //MultiAccessKey_CoveredTaxon.WorkingSet_id -> MultiAccessKey_id
281
        stepName = "MultiAccessKey_CoveredTaxon.WorkingSet_id -> MultiAccessKey_id";
282
        tableName = "MultiAccessKey_CoveredTaxon";
283
        oldColumnName = "workingset_id";
284
        newColumnName = "multiaccesskey_id";
285
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
286
        stepList.add(step);
287
//         (also rename table)
288

    
289
        //MultiAccessKey_NamedArea.WorkingSet_id -> MultiAccessKey_id
290
        stepName = "MultiAccessKey_NamedArea.WorkingSet_id -> MultiAccessKey_id";
291
        tableName = "MultiAccessKey_NamedArea";
292
        oldColumnName = "workingset_id";
293
        newColumnName = "multiaccesskey_id";
294
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
295
        stepList.add(step);
296

    
297
        //MultiAccessKey_Scope.WorkingSet_id -> MultiAccessKey_id
298
        stepName = "MultiAccessKey_Scope.WorkingSet_id -> MultiAccessKey_id ";
299
        tableName = "MultiAccessKey_Scope";
300
        oldColumnName = "workingset_id";
301
        newColumnName = "multiaccesskey_id";
302
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
303
        stepList.add(step);
304

    
305
        //Rename MultiAccessKey_Taxon -> MultiAccessKey_TaxonScope
306
        stepName = "Rename MultiAccessKey_Taxon -> MultiAccessKey_TaxonScope";
307
        oldTableName = "MultiAccessKey_Taxon";
308
        newTableName = "MultiAccessKey_TaxonScope";
309
        step = TableNameChanger.NewInstance(stepName, oldTableName, newTableName, INCLUDE_AUDIT);
310
        stepList.add(step);
311

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

    
320
        //DescriptionBase_Scope.DescriptionBase_id -> TaxonDescription_id
321
        stepName = "DescriptionBase_Scope.DescriptionBase_id -> TaxonDescription_id";
322
        tableName = "DescriptionBase_Scope";
323
        oldColumnName = "descriptionbase_id";
324
        newColumnName = "taxondescription_id";
325
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
326
        stepList.add(step);
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
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
334
        stepList.add(step);
335

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

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

    
352
        //Media_Sequence.Media_id -> PhylogeneticTree_id
353
        stepName = "Media_Sequence.Media_id -> PhylogeneticTree_id";
354
        tableName = "Media_Sequence";
355
        oldColumnName = "media_id";
356
        newColumnName = "phylogenetictree_id";
357
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
358
        stepList.add(step);
359

    
360

    
361
        //RelationshipTermBase_inverseRepresentation.DefinedTermBase_id ->RelationshipTermBase_id
362
        stepName = "RelationshipTermBase_inverseRepresentation.DefinedTermBase_id ->RelationshipTermBase_id";
363
        tableName = "RelationshipTermBase_inverseRepresentation";
364
        oldColumnName = "definedtermbase_id";
365
        newColumnName = "relationshiptermbase_id";
366
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
367
        stepList.add(step);
368

    
369
        //TaxonInteraction_LanguageString.DescriptionElementBase_id -> TaxonInteraction_id
370
        stepName = "TaxonInteraction_LanguageString.DescriptionElementBase_id -> TaxonInteraction_id";
371
        tableName = "TaxonInteraction_LanguageString";
372
        oldColumnName = "descriptionelementbase_id";
373
        newColumnName = "taxoninteraction_id";
374
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
375
        stepList.add(step);
376

    
377
        //IndividualAssociation_LanguageString.DescriptionElementBase_id -> IndividualsAssociation_id
378
        stepName = "IndividualAssociation_LanguageString.DescriptionElementBase_id -> IndividualsAssociation_id";
379
        tableName = "IndividualAssociation_LanguageString";
380
        oldColumnName = "descriptionelementbase_id";
381
        newColumnName = "individualsassociation_id";
382
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
383
        stepList.add(step);
384

    
385
        //Media_Representation.Media_id -> MediaKey_id
386
        stepName = "Media_Representation.Media_id -> MediaKey_id";
387
        tableName = "Media_Representation";
388
        oldColumnName = "media_id";
389
        newColumnName = "mediakey_id";
390
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
391
        stepList.add(step);
392

    
393
        //RightsInfo_Annotation. RightsInfo_id->Rights_id (see AssociationOverrides on class level)
394
        stepName = "RightsInfo_Annotation. RightsInfo_id->Rights_id";
395
        tableName = "RightsInfo_Annotation";
396
        oldColumnName = "rightsinfo_id";
397
        newColumnName = "rights_id";
398
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
399
        stepList.add(step);
400

    
401
        // RightsInfo_Marker. RightsInfo_id->Rights_id (see AssociationOverrides on class level)
402
        stepName = "RightsInfo_Marker. RightsInfo_id->Rights_id";
403
        tableName = "RightsInfo_Marker";
404
        oldColumnName = "rightsinfo_id";
405
        newColumnName = "rights_id";
406
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
407
        stepList.add(step);
408

    
409
        // WorkingSet_DescriptionBase.workingSet_id->workingSets_id
410
        stepName = "WorkingSet_DescriptionBase.workingSet_id->workingSets_id";
411
        tableName = "WorkingSet_DescriptionBase";
412
        oldColumnName = "workingSet_id";
413
        newColumnName = "workingSets_id";
414
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
415
        stepList.add(step);
416

    
417
        // IndividualAssociation_LanguageString -> IndividualsAssociation_LanguageString
418
        stepName = "IndividualAssociation_LanguageString -> IndividualsAssociation_LanguageString";
419
        oldTableName = "IndividualAssociation_LanguageString";
420
        newTableName = "IndividualsAssociation_LanguageString";
421
        step = TableNameChanger.NewInstance(stepName, oldTableName, newTableName, INCLUDE_AUDIT);
422
        stepList.add(step);
423

    
424
        //Contact tables
425
        // AgentBase_contact_emailaddresses-> AgentBase_contact_emailAddresses
426
        //in 2 steps to avoid "table already exists" on non sensitive systems
427
        stepName = "AgentBase_contact_emailaddresses-> AgentBase_contact_emailAddresses(I)";
428
        oldTableName = "AgentBase_contact_emailaddresses";
429
        newTableName = "AgentBase_contact_emailaddresses2";
430
        step = TableNameChanger.NewInstance(stepName, oldTableName, newTableName, INCLUDE_AUDIT);
431
        stepList.add(step);
432
        stepName = "AgentBase_contact_emailaddresses-> AgentBase_contact_emailAddresses(II)";
433
        oldTableName = "AgentBase_contact_emailaddresses2";
434
        newTableName = "AgentBase_contact_emailAddresses";
435
        step = TableNameChanger.NewInstance(stepName, oldTableName, newTableName, INCLUDE_AUDIT);
436
        stepList.add(step);
437

    
438
        // AgentBase_contact_faxnumbers-> AgentBase_contact_faxNumbers
439
        stepName = "AgentBase_contact_faxnumbers-> AgentBase_contact_faxNumbers(I)";
440
        oldTableName = "AgentBase_contact_faxnumbers";
441
        newTableName = "AgentBase_contact_faxnumbers2";
442
        step = TableNameChanger.NewInstance(stepName, oldTableName, newTableName, INCLUDE_AUDIT);
443
        stepList.add(step);
444
        stepName = "AgentBase_contact_faxnumbers-> AgentBase_contact_faxNumbers(II)";
445
        oldTableName = "AgentBase_contact_faxnumbers2";
446
        newTableName = "AgentBase_contact_faxNumbers";
447
        step = TableNameChanger.NewInstance(stepName, oldTableName, newTableName, INCLUDE_AUDIT);
448
        stepList.add(step);
449

    
450
        // AgentBase_contact_phoneNumbers-> AgentBase_contact_phoneNumbers
451
        stepName = "AgentBase_contact_phonenumbers-> AgentBase_contact_phoneNumbers(I)";
452
        oldTableName = "AgentBase_contact_phonenumbers";
453
        newTableName = "AgentBase_contact_phonenumbers2";
454
        step = TableNameChanger.NewInstance(stepName, oldTableName, newTableName, INCLUDE_AUDIT);
455
        stepList.add(step);
456
        stepName = "AgentBase_contact_phonenumbers-> AgentBase_contact_phoneNumbers(II)";
457
        oldTableName = "AgentBase_contact_phonenumbers2";
458
        newTableName = "AgentBase_contact_phoneNumbers";
459
        step = TableNameChanger.NewInstance(stepName, oldTableName, newTableName, INCLUDE_AUDIT);
460
        stepList.add(step);
461
    }
462

    
463
    @Override
464
	public ISchemaUpdater getNextUpdater() {
465
		return null;
466
	}
467

    
468
	@Override
469
	public ISchemaUpdater getPreviousUpdater() {
470
		return SchemaUpdater_35_36.NewInstance();
471
	}
472

    
473
}
(2-2/3)