ref #6343, ref 6794 fix creation of OrderedTermVocabulary in imports
[cdmlib.git] / cdmlib-persistence / src / main / java / eu / etaxonomy / cdm / database / update / v522_523 / SchemaUpdater_5220_5230.java
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 package eu.etaxonomy.cdm.database.update.v522_523;
10
11 import java.util.ArrayList;
12 import java.util.List;
13
14 import org.apache.logging.log4j.LogManager;
15 import org.apache.logging.log4j.Logger;
16
17 import eu.etaxonomy.cdm.database.update.ColumnAdder;
18 import eu.etaxonomy.cdm.database.update.ColumnRemover;
19 import eu.etaxonomy.cdm.database.update.ISchemaUpdater;
20 import eu.etaxonomy.cdm.database.update.ISchemaUpdaterStep;
21 import eu.etaxonomy.cdm.database.update.SchemaUpdaterBase;
22 import eu.etaxonomy.cdm.database.update.SimpleSchemaUpdaterStep;
23 import eu.etaxonomy.cdm.database.update.TableDropper;
24 import eu.etaxonomy.cdm.database.update.v518_522.SchemaUpdater_5186_5220;
25 import eu.etaxonomy.cdm.model.metadata.CdmMetaData.CdmVersion;
26
27 /**
28 * @author a.mueller
29 * @date 22.04.2021
30 */
31 public class SchemaUpdater_5220_5230 extends SchemaUpdaterBase {
32
33 @SuppressWarnings("unused")
34 private static final Logger logger = LogManager.getLogger();
35
36 private static final CdmVersion startSchemaVersion = CdmVersion.V_05_22_00;
37 private static final CdmVersion endSchemaVersion = CdmVersion.V_05_23_00;
38
39 // ********************** FACTORY METHOD *************************************
40
41 public static SchemaUpdater_5220_5230 NewInstance() {
42 return new SchemaUpdater_5220_5230();
43 }
44
45 protected SchemaUpdater_5220_5230() {
46 super(startSchemaVersion.versionString(), endSchemaVersion.versionString());
47 }
48
49 @Override
50 protected List<ISchemaUpdaterStep> getUpdaterList() {
51
52 String stepName;
53 String tableName;
54 String newColumnName;
55
56 List<ISchemaUpdaterStep> stepList = new ArrayList<>();
57
58 //#9536
59 //TaxonBase.secMicroReference
60 stepName = "Remove TaxonBase.secMicroReference";
61 tableName = "TaxonBase";
62 String oldColumnName = "secMicroReference";
63 ColumnRemover.NewInstance(stepList, stepName, tableName, oldColumnName, INCLUDE_AUDIT);
64
65 //TaxonBase.sec_id
66 stepName = "Remove TaxonBase.sec_id";
67 tableName = "TaxonBase";
68 oldColumnName = "sec_id";
69 ColumnRemover.NewInstance(stepList, stepName, tableName, oldColumnName, INCLUDE_AUDIT);
70
71 //Classification.microreference
72 stepName = "Remove Classification.microreference";
73 tableName = "Classification";
74 oldColumnName = "microreference";
75 ColumnRemover.NewInstance(stepList, stepName, tableName, oldColumnName, INCLUDE_AUDIT);
76
77 //Classification.reference_id
78 stepName = "Remove Classification.reference_id";
79 tableName = "Classification";
80 oldColumnName = "reference_id";
81 ColumnRemover.NewInstance(stepList, stepName, tableName, oldColumnName, INCLUDE_AUDIT);
82
83 //DescriptionElementBase_OriginalSourceBase
84 stepName = "Remove table DescriptionElementBase_OriginalSourceBase ";
85 tableName = "DescriptionElementBase_OriginalSourceBase";
86 TableDropper.NewInstance(stepList, stepName, tableName, INCLUDE_AUDIT);
87
88 //TaxonName_NomenclaturalStatus
89 stepName = "Remove table TaxonName_NomenclaturalStatus ";
90 tableName = "TaxonName_NomenclaturalStatus";
91 TableDropper.NewInstance(stepList, stepName, tableName, INCLUDE_AUDIT);
92
93 //#9613 fix uuids for roles
94 stepName = "Set uuid for role project manager";
95 String query = "UPDATE @@GrantedAuthorityImpl@@ "
96 + " SET uuid = '6d0c72a5-0d8a-4f2e-a8e0-31d7e0338f00' "
97 + " WHERE authority = 'ROLE_PROJECT_MANAGER'";
98 SimpleSchemaUpdaterStep.NewNonAuditedInstance(stepList, stepName, query);
99
100 stepName = "Set uuid for role user manager";
101 query = "UPDATE @@GrantedAuthorityImpl@@ "
102 + " SET uuid = '74d340a9-b472-4b97-b52a-c140e27a5c76' "
103 + " WHERE authority = 'ROLE_USER_MANAGER'";
104 SimpleSchemaUpdaterStep.NewNonAuditedInstance(stepList, stepName, query);
105
106 stepName = "Set uuid for role publish";
107 query = "UPDATE @@GrantedAuthorityImpl@@ "
108 + " SET uuid = '9ffa7879-cc67-4592-a14a-b251cccde1a7' "
109 + " WHERE authority = 'ROLE_PUBLISH'";
110 SimpleSchemaUpdaterStep.NewNonAuditedInstance(stepList, stepName, query);
111
112 //probably fixed already, but just in case
113 stepName = "Set uuid for role project manager";
114 query = "UPDATE @@GrantedAuthorityImpl@@ "
115 + " SET uuid = 'be004bf6-0498-48e3-9f06-ff93fc9cdc9a' "
116 + " WHERE authority = 'ROLE_REMOTING'";
117 SimpleSchemaUpdaterStep.NewNonAuditedInstance(stepList, stepName, query);
118
119 //#9614 use underscore for role based group names
120 stepName = "Use underscore for group Editor_Extended_Create";
121 query = "UPDATE @@PermissionGroup@@ "
122 + " SET name = 'Editor_Extended_Create' "
123 + " WHERE name = 'EditorExtendedCreate'";
124 SimpleSchemaUpdaterStep.NewNonAuditedInstance(stepList, stepName, query);
125
126 stepName = "Use underscore for group Project_Manager";
127 query = "UPDATE @@PermissionGroup@@ "
128 + " SET name = 'Project_Manager' "
129 + " WHERE name = 'ProjectManager'";
130 SimpleSchemaUpdaterStep.NewNonAuditedInstance(stepList, stepName, query);
131
132 stepName = "Use underscore for group Editor_Reference";
133 query = "UPDATE @@PermissionGroup@@ "
134 + " SET name = 'Editor_Reference' "
135 + " WHERE name = 'Editor-Reference'";
136 SimpleSchemaUpdaterStep.NewNonAuditedInstance(stepList, stepName, query);
137
138 //#9619
139 stepName = "Add Taxon.conceptId";
140 tableName = "TaxonBase";
141 newColumnName = "conceptId";
142 ColumnAdder.NewStringInstance(stepList, stepName, tableName, newColumnName, INCLUDE_AUDIT);
143
144
145 //#9619
146 stepName = "Add Taxon.conceptDefinitions";
147 tableName = "TaxonBase";
148 newColumnName = "conceptDefinitions";
149 ColumnAdder.NewStringInstance(stepList, stepName, tableName, newColumnName, INCLUDE_AUDIT);
150
151 //#9619
152 stepName = "Add Taxon.conceptStatus";
153 tableName = "TaxonBase";
154 newColumnName = "conceptStatus";
155 ColumnAdder.NewStringInstance(stepList, stepName, tableName, newColumnName, INCLUDE_AUDIT);
156
157 //#9619
158 stepName = "Add Taxon.taxonTypes";
159 tableName = "TaxonBase";
160 newColumnName = "taxonTypes";
161 ColumnAdder.NewStringInstance(stepList, stepName, tableName, newColumnName, INCLUDE_AUDIT);
162
163 //#9619
164 stepName = "Add Taxon.currentConceptPeriod_start";
165 tableName = "TaxonBase";
166 newColumnName = "currentConceptPeriod_start";
167 ColumnAdder.NewStringInstance(stepList, stepName, tableName, newColumnName, INCLUDE_AUDIT);
168
169 stepName = "Add Taxon.currentConceptPeriod_end";
170 tableName = "TaxonBase";
171 newColumnName = "currentConceptPeriod_end";
172 ColumnAdder.NewStringInstance(stepList, stepName, tableName, newColumnName, INCLUDE_AUDIT);
173
174 stepName = "Add Taxon.currentConceptPeriod_freetext";
175 tableName = "TaxonBase";
176 newColumnName = "currentConceptPeriod_freetext";
177 ColumnAdder.NewStringInstance(stepList, stepName, tableName, newColumnName, INCLUDE_AUDIT);
178
179 //#9617
180 stepName = "Rename ICNB to ICNP";
181 query = "UPDATE @@TaxonName@@ "
182 + " SET nameType = 'ICNP' "
183 + " WHERE nameType = 'ICNB'";
184 SimpleSchemaUpdaterStep.NewAuditedInstance(stepList, stepName, query, "TaxonName");
185
186
187 return stepList;
188 }
189
190 @Override
191 public ISchemaUpdater getPreviousUpdater() {
192 return SchemaUpdater_5186_5220.NewInstance();
193 }
194 }