Project

General

Profile

Download (12.2 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.v47_49;
11

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

    
16
import org.apache.log4j.Logger;
17

    
18
import eu.etaxonomy.cdm.database.update.ClassBaseTypeUpdater;
19
import eu.etaxonomy.cdm.database.update.ColumnAdder;
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.TermRepresentationUpdater;
25
import eu.etaxonomy.cdm.database.update.v41_47.SchemaUpdater_41_47;
26

    
27
/**
28
/**
29
 * @author a.mueller
30
 * @date 09.06.2017
31
 *
32
 */
33
public class SchemaUpdater_47_49 extends SchemaUpdaterBase {
34

    
35
	@SuppressWarnings("unused")
36
	private static final Logger logger = Logger.getLogger(SchemaUpdater_47_49.class);
37
	private static final String endSchemaVersion = "4.9.0.0.20170710";
38
	private static final String startSchemaVersion = "4.7.0.0.201710040000";
39

    
40
	// ********************** FACTORY METHOD *************************************
41

    
42
	public static SchemaUpdater_47_49 NewInstance() {
43
		return new SchemaUpdater_47_49();
44
	}
45

    
46
	/**
47
	 * @param startSchemaVersion
48
	 * @param endSchemaVersion
49
	 */
50
	protected SchemaUpdater_47_49() {
51
		super(startSchemaVersion, endSchemaVersion);
52
	}
53

    
54
	@Override
55
	protected List<ISchemaUpdaterStep> getUpdaterList() {
56

    
57
		String stepName;
58
		String tableName;
59
		ISchemaUpdaterStep step;
60
		String newColumnName;
61
		String query;
62

    
63
		List<ISchemaUpdaterStep> stepList = new ArrayList<>();
64

    
65
		//#7109 nom. valid => nom. val.
66
		stepName = "nom valid => nom. val. (abbrevLabel)";
67
		UUID uuidTerm = UUID.fromString("bd036217-5499-4ccd-8f4c-72e06158db93");
68
		UUID uuidLanguage = UUID.fromString("160a5b6c-87f5-4422-9bda-78cd404c179e");
69
		step = TermRepresentationUpdater.NewInstance(stepName, uuidTerm,
70
		        null, null, "nom. val.", uuidLanguage);
71
		stepList.add(step);
72

    
73
		//... idInVoc
74
		stepName = "nom valid => nom. val. (idInVocabulary)";
75
        query = "UPDATE @@DefinedTermBase@@ "
76
                + " SET idInVocabulary = 'nom. val.' "
77
                + " WHERE uuid = '" + uuidTerm + "'";
78
		tableName = "DefinedTermBase";
79
		step = SimpleSchemaUpdaterStep.NewAuditedInstance(stepName, query, tableName, -99);
80
		stepList.add(step);
81

    
82
		//#7096 Add second symbol attribute to DefinedTermBase
83
		stepName = "Add second symbol to DefinedTermBase";
84
		tableName = "DefinedTermBase";
85
		newColumnName = "symbol2";
86
		int length = 30;
87
		step = ColumnAdder.NewStringInstance(stepName, tableName, newColumnName, length, INCLUDE_AUDIT);
88
		stepList.add(step);
89

    
90
		//#6879 Update uuid and name for admin user group
91
	    stepName = "nom valid => nom. val. (idInVocabulary)";
92
        query = "UPDATE @@PermissionGroup@@ "
93
                + " SET uuid='1739df71-bf73-4dc6-8320-aaaf72cb555f', name='Admin' "
94
                + " WHERE  name='admin' or name='Admin'";
95
        tableName = "PermissionGroup";
96
        step = SimpleSchemaUpdaterStep.NewAuditedInstance(stepName, query, tableName, -99);
97
        stepList.add(step);
98

    
99

    
100

    
101
        //#2335 Make WorkingSet IdentifiableEntity
102
        stepName = "Make WorkingSet IdentifiableEntity";
103
        tableName = "WorkingSet";
104
        step = ClassBaseTypeUpdater.NewAnnotatableToIdentifiableInstance(stepName, tableName, INCLUDE_AUDIT);
105
        stepList.add(step);
106

    
107
        //TODO add titleCache updater, but maybe not necessary as real data does not really exist
108
        //except for Campanula test data, and it is easy to update via TaxEditor cache updater
109

    
110

    
111

    
112

    
113
//        //#5149 remove unique index on Sequence_Reference.citations_id
114
//        tableName = "Sequence_Reference";
115
//        String columnName = "citations_id";
116
//        step = UniqueIndexDropper.NewInstance(tableName, columnName, !INCLUDE_AUDIT);
117
//        stepList.add(step);
118
//
119
//
120
//        //#6340 nom status invalid updater
121
//        step = NomStatusInvalidUpdater.NewInstance();
122
//        stepList.add(step);
123
//
124
//		//#6529
125
//		//Extend WorkingSet to allow a more fine grained definiton of taxon set
126
//		//min rank
127
//        stepName = "Add minRank column";
128
//        tableName = "WorkingSet";
129
//        newColumnName = "minRank_id";
130
//        String referencedTable = "DefinedTermBase";
131
//        step = ColumnAdder.NewIntegerInstance(stepName, tableName, newColumnName, INCLUDE_AUDIT, !NOT_NULL, referencedTable);
132
//        stepList.add(step);
133
//
134
//        //max rank
135
//        stepName = "Add maxRank column";
136
//        tableName = "WorkingSet";
137
//        newColumnName = "maxRank_id";
138
//        referencedTable = "DefinedTermBase";
139
//        step = ColumnAdder.NewIntegerInstance(stepName, tableName, newColumnName, INCLUDE_AUDIT, !NOT_NULL, referencedTable);
140
//        stepList.add(step);
141
//
142
//        //subtree filter
143
//        stepName= "Add geo filter MN table to WorkingSet";
144
//        String firstTableName = "WorkingSet";
145
//        String secondTableAlias = "NamedArea";
146
//        String secondTableName = "DefinedTermBase";
147
//        String attributeName = "geoFilter";
148
//        boolean isList = ! IS_LIST;
149
//        step = MnTableCreator.NewMnInstance(stepName, firstTableName, null, secondTableName, secondTableAlias, attributeName, INCLUDE_AUDIT, isList, IS_M_TO_M);
150
//        stepList.add(step);
151
//
152
//        //subtree filter
153
//        stepName= "Add subtree filter MN table to WorkingSet";
154
//        firstTableName = "WorkingSet";
155
//        secondTableName = "TaxonNode";
156
//        secondTableAlias = null;
157
//        attributeName = "taxonSubtreeFilter";
158
//        isList = ! IS_LIST;
159
//        step = MnTableCreator.NewMnInstance(stepName, firstTableName, null, secondTableName, secondTableAlias, attributeName, INCLUDE_AUDIT, isList, IS_M_TO_M);
160
//        stepList.add(step);
161
//
162
//        //#6258
163
//        stepName = "Add Registration table";
164
//        tableName = "Registration";
165
//        String[] columnNames = new String[]{"identifier","specificIdentifier","registrationDate","status",
166
//                "institution_id","name_id","submitter_id"};
167
//        String[] referencedTables = new String[]{null, null, null, null,
168
//                "AgentBase","TaxonNameBase","UserAccount"};
169
//        String[] columnTypes = new String[]{"string_255","string_255","datetime","string_10","int","int","int"};
170
//        step = TableCreator.NewAnnotatableInstance(stepName, tableName,
171
//                columnNames, columnTypes, referencedTables, INCLUDE_AUDIT);
172
//        stepList.add(step);
173
//
174
//        //add blockedBy_id
175
//        stepName= "Add blockedBy_id to Registration";
176
//        firstTableName = "Registration";
177
//        secondTableName = "Registration";
178
//        attributeName = "blockedBy";
179
//        isList = ! IS_LIST;
180
//        step = MnTableCreator.NewMnInstance(stepName, firstTableName, null, secondTableName, null, attributeName, INCLUDE_AUDIT, isList, IS_M_TO_M);
181
//        stepList.add(step);
182
//
183
//        //add type designations
184
//        stepName= "Add type designations to Registration";
185
//        firstTableName = "Registration";
186
//        String firstColumnName = "registrations";
187
//        secondTableName = "TypeDesignationBase";
188
//        attributeName = "typeDesignations";
189
//        isList = false;
190
//        step = MnTableCreator.NewMnInstance(stepName, firstTableName, null, firstColumnName, secondTableName, null, attributeName, INCLUDE_AUDIT, isList, IS_M_TO_M);
191
//        stepList.add(step);
192
//
193
//        //#5258
194
//        //Add "accessed" to Reference
195
//        stepName = "Add 'accessed' to Reference";
196
//        tableName = "Reference";
197
//        newColumnName = "accessed";
198
//        step = ColumnAdder.NewDateTimeInstance(stepName, tableName, newColumnName, INCLUDE_AUDIT, !NOT_NULL);
199
//        stepList.add(step);
200
//
201
//        //#6618 Add structure column to DefinedTermBase (Character)
202
//        stepName = "Add structure column to DefinedTermBase (Character)";
203
//        tableName = "DefinedTermBase";
204
//        newColumnName = "structure_id";
205
//        referencedTable = "FeatureNode";
206
//        step = ColumnAdder.NewIntegerInstance(stepName, tableName, newColumnName, INCLUDE_AUDIT, !NOT_NULL, referencedTable);
207
//        stepList.add(step);
208
//
209
//        //#6618 Add property column to DefinedTermBase (Character)
210
//        stepName = "Add property column to DefinedTermBase (Character)";
211
//        tableName = "DefinedTermBase";
212
//        newColumnName = "property_id";
213
//        referencedTable = "FeatureNode";
214
//        step = ColumnAdder.NewIntegerInstance(stepName, tableName, newColumnName, INCLUDE_AUDIT, !NOT_NULL, referencedTable);
215
//        stepList.add(step);
216
//
217
//        //##6661 Add initials to agent base
218
//        stepName = "Add initials to AgentBase";
219
//        tableName = "AgentBase";
220
//        newColumnName = "initials";
221
//        int length = 80;
222
//        step = ColumnAdder.NewStringInstance(stepName, tableName, newColumnName, length, INCLUDE_AUDIT);
223
//        stepList.add(step);
224
//
225
//        stepName = "Update initials and firstname";
226
//        step = InitialsUpdater.NewInstance();
227
//        stepList.add(step);
228
//
229
//        //#6663
230
//        //Add "lastRetrieved" to Reference
231
//        stepName = "Add 'lastRetrieved' to Reference";
232
//        tableName = "Reference";
233
//        newColumnName = "lastRetrieved";
234
//        step = ColumnAdder.NewDateTimeInstance(stepName, tableName, newColumnName, INCLUDE_AUDIT, !NOT_NULL);
235
//        stepList.add(step);
236
//
237
//        stepName = "Add externalId to Reference";
238
//        tableName = "Reference";
239
//        newColumnName = "externalId";
240
//        length = 255;
241
//        step = ColumnAdder.NewStringInstance(stepName, tableName, newColumnName, length, INCLUDE_AUDIT);
242
//        stepList.add(step);
243
//
244
//        stepName = "Add externalLink to Reference";
245
//        tableName = "Reference";
246
//        newColumnName = "externalLink";
247
//        step = ColumnAdder.NewClobInstance(stepName, tableName, newColumnName, INCLUDE_AUDIT);
248
//        stepList.add(step);
249
//
250
//        stepName = "Add authorityType to Reference";
251
//        tableName = "Reference";
252
//        newColumnName = "authorityType";
253
//        length = 10;
254
//        step = ColumnAdder.NewStringInstance(stepName, tableName, newColumnName, length, INCLUDE_AUDIT);
255
//        stepList.add(step);
256
//
257
//        //#6472 add key to IntextReference
258
//        stepName = "Add key to IntextReference";
259
//        tableName = "IntextReference";
260
//        newColumnName = "key_id";
261
//        referencedTable = "PolytomousKey";
262
//        step = ColumnAdder.NewIntegerInstance(stepName, tableName, newColumnName, INCLUDE_AUDIT, !NOT_NULL, referencedTable);
263
//        stepList.add(step);
264
//
265
//        //#5817 rename relationshipTermBase_inverseRepresentation
266
//        stepName = "Rename relationshipTermBase_inverseRepresentation";
267
//        String oldName = "RelationshipTermBase_inverseRepresentation";
268
//        String newName = "TermBase_inverseRepresentation";
269
//        step = TableNameChanger.NewInstance(stepName, oldName, newName, INCLUDE_AUDIT);
270
//        stepList.add(step);
271
//
272
//        //#5817 rename TermBase_inverseRepresentation.relationshipTermBase_id
273
//        stepName = "Rename relationshipTermBase_inverseRepresentation.relationshipTermBase_id";
274
//        tableName = newName;
275
//        String oldColumnName = "relationshipTermBase_id";
276
//        newColumnName = "term_id";
277
//        step = ColumnNameChanger.NewIntegerInstance(stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
278
//        stepList.add(step);
279
//
280
//        //#6226 remove orphaned PolytomousKeyNodes
281
//        stepName = "remove orphaned PolytomousKeyNodes";
282
//        String query = " DELETE FROM @@PolytomousKeyNode@@ WHERE key_id NOT IN (SELECT id FROM @@PolytomousKey@@)";
283
//        String aud_query = " DELETE FROM @@PolytomousKeyNode_AUD@@ WHERE key_id NOT IN (SELECT id FROM @@PolytomousKey_AUD@@)";
284
//        step = SimpleSchemaUpdaterStep.NewExplicitAuditedInstance(stepName, query, aud_query, -99);
285
//        stepList.add(step);
286

    
287
        return stepList;
288
    }
289

    
290

    
291
    @Override
292
	public ISchemaUpdater getNextUpdater() {
293
		return null;
294
	}
295

    
296
	@Override
297
	public ISchemaUpdater getPreviousUpdater() {
298
		return SchemaUpdater_41_47.NewInstance();
299
	}
300

    
301
}
    (1-1/1)