Project

General

Profile

Download (13.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.v24_30;
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.MapTableCreator;
23
import eu.etaxonomy.cdm.database.update.MnTableCreator;
24
import eu.etaxonomy.cdm.database.update.SchemaUpdaterBase;
25
import eu.etaxonomy.cdm.database.update.TableCreator;
26
import eu.etaxonomy.cdm.database.update.TableDropper;
27
import eu.etaxonomy.cdm.database.update.TableNameChanger;
28

    
29

    
30
/**
31
 * @author a.mueller
32
 * @since Nov 08, 2010
33
 */
34
public class SchemaUpdater_25_30 extends SchemaUpdaterBase {
35

    
36

    
37
	@SuppressWarnings("unused")
38
	private static final Logger logger = LogManager.getLogger(SchemaUpdater_25_30.class);
39
	private static final String startSchemaVersion = "2.5.0.0.201009211255";
40
	private static final String endSchemaVersion = "3.0.0.0.201011090000";
41

    
42
// ********************** FACTORY METHOD *******************************************
43

    
44
	public static SchemaUpdater_25_30 NewInstance(){
45
		return new SchemaUpdater_25_30();
46
	}
47

    
48
	/**
49
	 * @param startSchemaVersion
50
	 * @param endSchemaVersion
51
	 */
52
	protected SchemaUpdater_25_30() {
53
		super(startSchemaVersion, endSchemaVersion);
54
	}
55

    
56
	@Override
57
	protected List<ISchemaUpdaterStep> getUpdaterList() {
58

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

    
62
		//add feature tree attribute to feature node table
63
		stepName = "Add feature tree addtribue to feature node";
64
		//TODO defaultValue & not null
65
		ColumnAdder.NewIntegerInstance(stepList, stepName, "FeatureNode", "FeatureTree_id", INCLUDE_AUDIT, false, "FeatureTree");
66

    
67
		//compute feature tree column
68
		stepName = "Update feature node tree column";
69
		FeatureNodeTreeColumnUpdater fntcu = FeatureNodeTreeColumnUpdater.NewInstance(stepList, stepName, INCLUDE_AUDIT);
70

    
71
		//Key statement
72
		stepName = "Create KeyStatement tables";
73
		TableCreator.NewInstance(stepList, stepName, "KeyStatement", new String[]{}, new String[]{}, new String[]{}, INCLUDE_AUDIT, INCLUDE_CDM_BASE);
74

    
75
		//KeyStatement_LanguageString
76
		stepName = "Create KeyStatement label";
77
		MapTableCreator.NewMapTableInstance(stepList, stepName,  "KeyStatement", null,  "LanguageString", "label", "DefinedTermBase", SchemaUpdaterBase.INCLUDE_AUDIT);
78

    
79

    
80
		//PolytomousKey
81
		stepName = "Create PolytomousKey tables";
82
		TableCreator.NewIdentifiableInstance(stepList, stepName, "PolytomousKey", new String[]{"root_id"}, new String[]{"int"}, new String[]{"PolytomousKeyNode"}, INCLUDE_AUDIT);
83

    
84
		//create table PolytomousKeyNode_PolytomousKeyNode_AUD (REV integer not null, parent_id integer not null, id integer not null, sortIndex integer not null, revtype tinyint, primary key (REV, parent_id, id, sortIndex)) ENGINE=MYISAM DEFAULT CHARSET=utf8
85
		TableCreator.NewInstance(stepList, stepName, "PolytomousKeyNode_PolytomousKeyNode_AUD", new String[]{"REV", "parent_id", "id", "sortIndex", "revtype"}, new String[]{"int","int","int","int","tinyint"}, new String[]{null, "PolytomousKeyNode", null, null, null},! INCLUDE_AUDIT, ! INCLUDE_CDM_BASE)
86
		        .setPrimaryKeyParams("REV, parent_id, id, sortIndex", null)
87
		        .setUniqueParams(null, null);
88

    
89
		//covered taxa
90
		stepName= "Add polytomous key covered taxa";
91
		MnTableCreator.NewMnInstance(stepList, stepName, "PolytomousKey", null, "TaxonBase", null, "coveredtaxa", SchemaUpdaterBase.INCLUDE_AUDIT, false, false);
92

    
93
		//Polytomous key node
94
		stepName = "Create PolytomousKeyNode tables";
95
		TableCreator.NewInstance(stepList, stepName, "PolytomousKeyNode", new String[]{"nodeNumber", "sortindex", "key_id", "othernode_id", "question_id", "statement_id", "feature_id", "subkey_id" , "taxon_id", "parent_id"}, new String[]{"int", "int", "int", "int", "int","int", "int", "int", "int", "int"}, new String[]{null, null, "PolytomousKey", "PolytomousKeyNode", "KeyStatement", "KeyStatement", "DefinedTermBase", "PolytomousKey" , "TaxonBase", "PolytomousKeyNode"}, INCLUDE_AUDIT, INCLUDE_CDM_BASE);
96

    
97
		//modifying text
98
		stepName = "Create PolytomousKeyNode modifying text";
99
		MapTableCreator.NewMapTableInstance(stepList, stepName,  "PolytomousKeyNode", null,  "LanguageString", "modifyingtext", "DefinedTermBase", SchemaUpdaterBase.INCLUDE_AUDIT);
100

    
101
		//rename named area featureTree_id
102
		stepName = "Rename polytomouskey_namedarea.featureTree_id -> polytomouskey_id";
103
		ColumnNameChanger.NewIntegerInstance(stepList, stepName, "PolytomousKey_NamedArea", "FeatureTree_id", "PolytomousKey_id", INCLUDE_AUDIT);
104

    
105
		//rename polytomouskey_scope featureTree_id
106
		stepName = "Rename polytomouskey_scope.featureTree_id -> polytomouskey_id";
107
		ColumnNameChanger.NewIntegerInstance(stepList, stepName, "PolytomousKey_Scope", "FeatureTree_id", "PolytomousKey_id", INCLUDE_AUDIT);
108

    
109
		//move PolytomousKey data to new tables
110
		stepName = "Move polytomous key data from feature tree to polytomous key";
111
		PolytomousKeyDataMover dataMover = PolytomousKeyDataMover.NewInstance(stepList, stepName, INCLUDE_AUDIT);
112

    
113
		//remove DTYPE from feature node
114
		stepName = "Remove feature tree DTYPE column";
115
		ColumnRemover.NewInstance(stepList, stepName, "FeatureTree", "DTYPE", INCLUDE_AUDIT);
116

    
117
		//remove feature node taxon column
118
		stepName = "Remove feature node taxon column";
119
		ColumnRemover.NewInstance(stepList, stepName, "FeatureNode", "taxon_id", INCLUDE_AUDIT);
120

    
121
		//Remove featureNode_representation
122
		stepName = "Remove FeatureNode_Representation MN";
123
		TableDropper.NewInstance(stepList, stepName, "FeatureNode_Representation", INCLUDE_AUDIT);
124

    
125
		//add exsiccatum
126
		stepName = "Add exsiccatum to specimen";
127
		ColumnAdder.NewStringInstance(stepList, stepName, "SpecimenOrObservationBase", "exsiccatum", INCLUDE_AUDIT);
128

    
129
		//add primary collector
130
		stepName = "Add primary collector to field unit";
131
		ColumnAdder.NewIntegerInstance(stepList, stepName, "SpecimenOrObservationBase", "primaryCollector_id", INCLUDE_AUDIT, false, "AgentBase");
132

    
133
		//taxonomic tree -> classification
134
		stepName = "Rename taxonomic tree to classification";
135
		TableNameChanger.NewInstance(stepList, stepName, "TaxonomicTree", "Classification", INCLUDE_AUDIT);
136

    
137
		//TaxonomicTree_Annotation -> classification_Annotation
138
		stepName = "Rename TaxonomicTree_Annotation to Classification_Annotation";
139
		TableNameChanger.NewInstance(stepList, stepName, "TaxonomicTree_Annotation", "Classification_Annotation", INCLUDE_AUDIT);
140

    
141
		stepName = "Rename taxonomicTree_id column in Classification_Annotation";
142
		ColumnNameChanger.NewIntegerInstance(stepList, stepName, "Classification_Annotation", "taxonomicTree_id", "classification_id", INCLUDE_AUDIT);
143

    
144

    
145
		//TaxonomicTree_Credit -> classification_Credit
146
		stepName = "Rename TaxonomicTree_Credit to Classification_Credit";
147
		TableNameChanger.NewInstance(stepList, stepName, "TaxonomicTree_Credit", "Classification_Credit", INCLUDE_AUDIT);
148

    
149
		stepName = "Rename taxonomicTree_id column in Classification_Credit";
150
		ColumnNameChanger.NewIntegerInstance(stepList, stepName, "Classification_Credit", "taxonomicTree_id", "classification_id", INCLUDE_AUDIT);
151

    
152
		//TaxonomicTree_Extension -> classification_Extension
153
		stepName = "Rename TaxonomicTree_Extension to Classification_Extension";
154
		TableNameChanger.NewInstance(stepList, stepName, "TaxonomicTree_Extension", "Classification_Extension", INCLUDE_AUDIT);
155

    
156
		stepName = "Rename taxonomicTree_id column in Classification_Extension";
157
		ColumnNameChanger.NewIntegerInstance(stepList, stepName, "Classification_Extension", "taxonomicTree_id", "classification_id", INCLUDE_AUDIT);
158

    
159

    
160
		//TaxonomicTree_Marker -> classification_Marker
161
		stepName = "Rename TaxonomicTree_Marker to Classification_Marker";
162
		TableNameChanger.NewInstance(stepList, stepName, "TaxonomicTree_Marker", "Classification_Marker", INCLUDE_AUDIT);
163

    
164
		stepName = "Rename taxonomicTree_id column in Classification_Marker";
165
		ColumnNameChanger.NewIntegerInstance(stepList, stepName, "Classification_Marker", "taxonomicTree_id", "classification_id", INCLUDE_AUDIT);
166

    
167

    
168
		//TaxonomicTree_OriginalSourceBase -> classification_OriginalSourceBase
169
		stepName = "Rename TaxonomicTree_OriginalSourceBase to Classification_OriginalSourceBase";
170
		TableNameChanger.NewInstance(stepList, stepName, "TaxonomicTree_OriginalSourceBase", "Classification_OriginalSourceBase", INCLUDE_AUDIT);
171

    
172
		stepName = "Rename taxonomicTree_id column in Classification_OriginalSourceBase";
173
		ColumnNameChanger.NewIntegerInstance(stepList, stepName, "Classification_OriginalSourceBase", "taxonomicTree_id", "classification_id", INCLUDE_AUDIT);
174

    
175

    
176
		//TaxonomicTree_Rights -> classification_Rights
177
		stepName = "Rename TaxonomicTree_Rights to Classification_Rights";
178
		TableNameChanger.NewInstance(stepList, stepName, "TaxonomicTree_Rights", "Classification_Rights", INCLUDE_AUDIT);
179

    
180
		stepName = "Rename taxonomicTree_id column in Classification_Rights";
181
		ColumnNameChanger.NewIntegerInstance(stepList, stepName, "Classification_Rights", "taxonomicTree_id", "classification_id", INCLUDE_AUDIT);
182

    
183

    
184
		//TaxonomicTree_TaxonNode -> classification_TaxonNode
185
		stepName = "Rename TaxonomicTree_TaxonNode to Classification_TaxonNode";
186
		TableNameChanger.NewInstance(stepList, stepName, "TaxonomicTree_TaxonNode", "Classification_TaxonNode", INCLUDE_AUDIT);
187

    
188
		stepName = "Rename taxonomicTree_id column in Classification_TaxonNode";
189
		ColumnNameChanger.NewIntegerInstance(stepList, stepName, "Classification_TaxonNode", "taxonomicTree_id", "classification_id", INCLUDE_AUDIT);
190

    
191
		//Rename taxonomictree column in TaxonNode
192
		stepName = "Rename taxonomicTree_id column in TaxonNode";
193
		ColumnNameChanger.NewIntegerInstance(stepList, stepName, "TaxonNode", "taxonomicTree_id", "classification_id", INCLUDE_AUDIT);
194

    
195
		//Rename description_id column in SpecimenOrObservationBase_LanguageString
196
		stepName = "Rename description column in SpecimenOrObservationBase_LanguageString";
197
		ColumnNameChanger.NewIntegerInstance(stepList, stepName, "SpecimenOrObservationBase_LanguageString", "description_id", "definition_id", INCLUDE_AUDIT);
198

    
199
		//Rename description_mapkey_id column in SpecimenOrObservationBase_LanguageString
200
		stepName = "Rename description column in SpecimenOrObservationBase_LanguageString";
201
		ColumnNameChanger.NewIntegerInstance(stepList, stepName, "SpecimenOrObservationBase_LanguageString", "description_mapkey_id", "definition_mapkey_id", INCLUDE_AUDIT);
202

    
203
		//Rename derivationevent_id column in SpecimenOrObservationBase
204
		stepName = "Rename derivationevent_id column in SpecimenOrObservationBase";
205
		ColumnNameChanger.NewIntegerInstance(stepList, stepName, "SpecimenOrObservationBase", "derivationevent_id", "derivedfrom_id", INCLUDE_AUDIT);
206

    
207
		//Rename taxonName_fk column in TaxonBase
208
		stepName = "Rename taxonName_fk column in TaxonBase";
209
		ColumnNameChanger.NewIntegerInstance(stepList, stepName, "TaxonBase", "taxonName_fk", "name_id", INCLUDE_AUDIT);
210

    
211
		//Rename taxonName_fk column in DescriptionBase
212
		stepName = "Rename taxonName_fk column in DescriptionBase";
213
		ColumnNameChanger.NewIntegerInstance(stepList, stepName, "DescriptionBase", "taxonName_fk", "taxonName_id", INCLUDE_AUDIT);
214

    
215
		//Rename taxon_fk column in DescriptionBase
216
		stepName = "Rename taxon_fk column in DescriptionBase";
217
		ColumnNameChanger.NewIntegerInstance(stepList, stepName, "DescriptionBase", "taxon_fk", "taxon_id", INCLUDE_AUDIT);
218

    
219
		//Rename parent_fk column in FeatureNode
220
		stepName = "Rename parent_fk column in FeatureNode";
221
		ColumnNameChanger.NewIntegerInstance(stepList, stepName, "FeatureNode", "parent_fk", "parent_id", INCLUDE_AUDIT);
222

    
223
		//Rename polytomousKey_fk column in PolytomousKey_Taxon
224
		stepName = "Rename polytomousKey_fk column in PolytomousKey_Taxon";
225
		ColumnNameChanger.NewIntegerInstance(stepList, stepName, "PolytomousKey_Taxon", "polytomousKey_fk", "polytomousKey_id", INCLUDE_AUDIT);
226

    
227
		//Rename taxon_fk column in PolytomousKey_Taxon
228
		stepName = "Rename taxon_fk column in PolytomousKey_Taxon";
229
		ColumnNameChanger.NewIntegerInstance(stepList, stepName, "PolytomousKey_Taxon", "taxon_fk", "taxon_id", INCLUDE_AUDIT);
230

    
231

    
232
		//Rename mediaKey_fk column in MediaKey_Taxon
233
		stepName = "Rename mediaKey_fk column in MediaKey_Taxon";
234
		ColumnNameChanger.NewIntegerInstance(stepList, stepName, "MediaKey_Taxon", "mediaKey_fk", "mediaKey_id", INCLUDE_AUDIT);
235

    
236
		//Rename taxon_fk column in MediaKey_Taxon
237
		stepName = "Rename taxon_fk column in MediaKey_Taxon";
238
		ColumnNameChanger.NewIntegerInstance(stepList, stepName, "MediaKey_Taxon", "taxon_fk", "taxon_id", INCLUDE_AUDIT);
239

    
240

    
241
		//Rename multiAccessKey_fk column in MultiAccessKey_Taxon
242
		stepName = "Rename multiAccessKey_fk column in MultiAccessKey_Taxon";
243
		ColumnNameChanger.NewIntegerInstance(stepList, stepName, "MultiAccessKey_Taxon", "multiAccessKey_fk", "multiAccessKey_id", INCLUDE_AUDIT);
244

    
245
		//Rename taxon_fk column in MultiAccessKey_Taxon
246
		stepName = "Rename taxon_fk column in MultiAccessKey_Taxon";
247
		ColumnNameChanger.NewIntegerInstance(stepList, stepName, "MultiAccessKey_Taxon", "taxon_fk", "taxon_id", INCLUDE_AUDIT);
248

    
249
		//add the table hibernate_sequences
250
		stepName = "Add the table hibernate_sequences to store the table specific sequences in";
251
		SequenceTableCreator.NewInstance(stepList, stepName);
252

    
253
		return stepList;
254
	}
255

    
256
	@Override
257
	public ISchemaUpdater getPreviousUpdater() {
258
		return SchemaUpdater_24_25.NewInstance();
259
	}
260

    
261
}
(4-4/5)