Project

General

Profile

Download (7.72 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.v35_36;
11

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

    
15
import org.apache.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.ISchemaUpdater;
20
import eu.etaxonomy.cdm.database.update.ISchemaUpdaterStep;
21
import eu.etaxonomy.cdm.database.update.MnTableRemover;
22
import eu.etaxonomy.cdm.database.update.SchemaUpdaterBase;
23
import eu.etaxonomy.cdm.database.update.TableCreator;
24
import eu.etaxonomy.cdm.database.update.UniqueIndexDropper;
25
import eu.etaxonomy.cdm.database.update.v34_35.SchemaUpdater_341_35;
26
import eu.etaxonomy.cdm.database.update.v36_40.SchemaUpdater_36_40;
27

    
28
/**
29
 * @author a.mueller
30
 * @since Mar 01, 2015
31
 */
32
public class SchemaUpdater_35_36 extends SchemaUpdaterBase {
33

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

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

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

    
45
	/**
46
	 * @param startSchemaVersion
47
	 * @param endSchemaVersion
48
	 */
49
	protected SchemaUpdater_35_36() {
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<>();
68

    
69
        //#4843
70
        //Allow NULL for DefinedTermBase_SupportedCategoricalEnumeration
71
		//.supportedcategoricalenumerations_id
72
        stepName = "Remove NOT NULL from supportedcategoricalenumerations_id";
73
        tableName = "DefinedTermBase_SupportedCategoricalEnumeration";
74
        oldColumnName = "supportedcategoricalenumerations_id";
75
        step = UniqueIndexDropper.NewInstance(tableName, oldColumnName, !INCLUDE_AUDIT);
76
        stepList.add(step);
77

    
78
        //#4843
79
        //Allow NULL for DefinedTermBase_RecommendedModifierEnumeration
80
        //.recommendedmodifierenumeration_id
81
        stepName = "Remove NOT NULL from recommendedmodifierenumeration_id";
82
        tableName = "DefinedTermBase_RecommendedModifierEnumeration";
83
        oldColumnName = "recommendedmodifierenumeration_id";
84
        step = UniqueIndexDropper.NewInstance(tableName, oldColumnName, ! INCLUDE_AUDIT);
85
        stepList.add(step);
86

    
87
        //add hasMoreMembers
88
        stepName = "Add hasMoreMembers to Team";
89
        tableName = "AgentBase";
90
        newColumnName = "hasMoreMembers";
91
        step = ColumnAdder.NewBooleanInstance(stepName, tableName, newColumnName, INCLUDE_AUDIT, false);
92
        stepList.add(step);
93

    
94
        //SingleReadAlignment firstSeqPosition
95
        stepName = "Add firstSeqPosition";
96
        tableName = "SingleReadAlignment";
97
        newColumnName = "firstSeqPosition";
98
        Integer defaultValue = null;
99
        boolean notNull = false;
100
        step = ColumnAdder.NewIntegerInstance(stepName, tableName, newColumnName, INCLUDE_AUDIT, defaultValue, notNull);
101
        stepList.add(step);
102

    
103
        //SingleReadAlignment leftCutPosition
104
        stepName = "Add leftCutPosition";
105
        tableName = "SingleReadAlignment";
106
        newColumnName = "leftCutPosition";
107
        step = ColumnAdder.NewIntegerInstance(stepName, tableName, newColumnName, INCLUDE_AUDIT, defaultValue, notNull);
108
        stepList.add(step);
109

    
110
        //SingleReadAlignment rightCutPosition
111
        stepName = "Add rightCutPosition";
112
        tableName = "SingleReadAlignment";
113
        newColumnName = "rightCutPosition";
114
        step = ColumnAdder.NewIntegerInstance(stepName, tableName, newColumnName, INCLUDE_AUDIT, defaultValue, notNull);
115
        stepList.add(step);
116

    
117
        //DescriptionElementBase_StateData
118
        stepName = "Simplify DescriptionElementBase_StateData";
119
        tableName = "DescriptionElementBase_StateData";
120
        newColumnName = "categoricaldata_id";
121
        step = MnTableRemover.NewInstance(stepName,
122
                tableName,
123
                newColumnName,
124
                "DescriptionElementBase_id",
125
                "statedata_id",
126
                "DescriptionElementBase",
127
                "StateData",
128
                INCLUDE_AUDIT);
129
        stepList.add(step);
130

    
131
        //DescriptionElementBase_StatisticalMeasurementValue
132
        stepName = "Simplify DescriptionElementBase_StatisticalMeasurementValue";
133
        tableName = "DescriptionElementBase_StatisticalMeasurementValue";
134
        newColumnName = "quantitativedata_id";
135
        step = MnTableRemover.NewInstance(stepName,
136
                tableName,
137
                newColumnName,
138
                "DescriptionElementBase_id",
139
                "statisticalvalues_id",
140
                "DescriptionElementBase",
141
                "StatisticalMeasurementValue",
142
                INCLUDE_AUDIT);
143
        stepList.add(step);
144

    
145
        //TaxonNodeAgentRelation
146
        //#3583
147
        stepName = "Add TaxonNodeAgentRelation table";
148
        tableName = "TaxonNodeAgentRelation";
149
        columnNames = new String[]{"taxonnode_id","agent_id","type_id"};
150
        referencedTables = new String[]{"TaxonNode","AgentBase","DefinedTermBase"};
151
        columnTypes = new String[]{"int","int","int"};
152
        step = TableCreator.NewAnnotatableInstance(stepName, tableName, columnNames, columnTypes, referencedTables, INCLUDE_AUDIT);
153
        stepList.add(step);
154

    
155
        //authorTeam -> authorship for TaxonName #4332
156
        stepName = "Rename TaxonNameBase.combinationAuthorTeam_id column";
157
        tableName = "TaxonNameBase";
158
        oldColumnName = "combinationAuthorTeam_id";
159
        newColumnName = "combinationAuthorship_id";
160
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
161
        stepList.add(step);
162

    
163
        //authorTeam -> authorship for TaxonName #4332
164
        stepName = "Rename TaxonNameBase.exCombinationAuthorTeam_id column";
165
        tableName = "TaxonNameBase";
166
        oldColumnName = "exCombinationAuthorTeam_id";
167
        newColumnName = "exCombinationAuthorship_id";
168
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
169
        stepList.add(step);
170

    
171
        //authorTeam -> authorship for TaxonName #4332
172
        stepName = "Rename TaxonNameBase.basionymAuthorTeam_id column";
173
        tableName = "TaxonNameBase";
174
        oldColumnName = "basionymAuthorTeam_id";
175
        newColumnName = "basionymAuthorship_id";
176
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
177
        stepList.add(step);
178

    
179
        //authorTeam -> authorship for TaxonName #4332
180
        stepName = "Rename TaxonNameBase.exBasionymAuthorTeam_id column";
181
        tableName = "TaxonNameBase";
182
        oldColumnName = "exBasionymAuthorTeam_id";
183
        newColumnName = "exBasionymAuthorship_id";
184
        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
185
        stepList.add(step);
186

    
187
		return stepList;
188
	}
189

    
190

    
191
	@Override
192
	public ISchemaUpdater getNextUpdater() {
193
		return SchemaUpdater_36_40.NewInstance();
194
	}
195

    
196
	@Override
197
	public ISchemaUpdater getPreviousUpdater() {
198
		return SchemaUpdater_341_35.NewInstance();
199
	}
200

    
201
}
    (1-1/1)