Project

General

Profile

Download (6.46 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.ColumnNameChanger;
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.TermRepresentationUpdater;
27
import eu.etaxonomy.cdm.database.update.v41_47.SchemaUpdater_41_47;
28

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

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

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

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

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

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

    
59
		String stepName;
60
		String tableName;
61
		ISchemaUpdaterStep step;
62
		String newColumnName;
63
		String query;
64

    
65
		List<ISchemaUpdaterStep> stepList = new ArrayList<>();
66

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

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

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

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

    
101
        //#7405 Rename WorkingSet to DescriptiveDataSet
102
        String oldTableName = "WorkingSet";
103
        changeSingleWorkingSetTableName(stepList, oldTableName);
104

    
105
        oldTableName = "WorkingSet_Annotation";
106
        changeSingleWorkingSetTableName(stepList, oldTableName);
107

    
108
        oldTableName = "WorkingSet_DescriptionBase";
109
        changeSingleWorkingSetTableName(stepList, oldTableName);
110

    
111
        oldTableName = "WorkingSet_Marker";
112
        changeSingleWorkingSetTableName(stepList, oldTableName);
113

    
114
        oldTableName = "WorkingSet_NamedArea";
115
        changeSingleWorkingSetTableName(stepList, oldTableName);
116

    
117
        oldTableName = "WorkingSet_Representation";
118
        changeSingleWorkingSetTableName(stepList, oldTableName);
119

    
120
        oldTableName = "WorkingSet_TaxonNode";
121
        changeSingleWorkingSetTableName(stepList, oldTableName);
122

    
123
        stepName = "Update hibernate_sequences for WorkingSet renaming";
124
        query = " UPDATE hibernate_sequences "
125
                + " SET sequence_name = 'DescriptiveDataSet' "
126
                + " WHERE sequence_name = WorkingSet";
127
        step = SimpleSchemaUpdaterStep.NewNonAuditedInstance(stepName, query, -99);
128
        stepList.add(step);
129

    
130
        //#2335 Make WorkingSet IdentifiableEntity
131
        stepName = "Make DescriptiveDataSet IdentifiableEntity";
132
        tableName = "DescriptiveDataSet";
133
        step = ClassBaseTypeUpdater.NewAnnotatableToIdentifiableInstance(stepName, tableName, INCLUDE_AUDIT);
134
        stepList.add(step);
135

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

    
139

    
140
        //#7374 Set titleCache of feature trees to protected
141
        stepName = "Set titleCache of feature trees to protected";
142
        query = "UPDATE @@FeatureTree@@ "
143
                + " SET protectedTitleCache = @TRUE@ ";
144
        tableName = "FeatureTree";
145
        step = SimpleSchemaUpdaterStep.NewAuditedInstance(stepName, query, tableName, -99);
146
        stepList.add(step);
147

    
148

    
149
        return stepList;
150
    }
151

    
152
    /**
153
     * @param #6368
154
     */
155
    private void changeSingleWorkingSetTableName(List<ISchemaUpdaterStep> stepList, String oldTableName) {
156
        String stepName = "Rename " +  oldTableName;
157
        String newTableName = oldTableName.replace("WorkingSet", "DescriptiveDataSet");
158
        ISchemaUpdaterStep step = TableNameChanger.NewInstance(stepName, oldTableName, newTableName, INCLUDE_AUDIT);
159
        stepList.add(step);
160

    
161
        if (oldTableName.contains("_")){
162
            stepName = "Rename " +  oldTableName + ".workingSet_id";
163
            String oldColumnName = "WorkingSet_id";
164
            String newColumnName = "DescriptiveDataSet_id";
165
            step = ColumnNameChanger.NewIntegerInstance(stepName, newTableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
166
            stepList.add(step);
167
        }
168
    }
169

    
170

    
171
    @Override
172
	public ISchemaUpdater getNextUpdater() {
173
		return null;
174
	}
175

    
176
	@Override
177
	public ISchemaUpdater getPreviousUpdater() {
178
		return SchemaUpdater_41_47.NewInstance();
179
	}
180

    
181
}
    (1-1/1)