ref #6343, ref 6794 fix creation of OrderedTermVocabulary in imports
[cdmlib.git] / cdmlib-persistence / src / main / java / eu / etaxonomy / cdm / database / update / v515_518 / SchemaUpdater_5180_5181.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.v515_518;
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.ISchemaUpdater;
18 import eu.etaxonomy.cdm.database.update.ISchemaUpdaterStep;
19 import eu.etaxonomy.cdm.database.update.SchemaUpdaterBase;
20 import eu.etaxonomy.cdm.database.update.SimpleSchemaUpdaterStep;
21 import eu.etaxonomy.cdm.model.metadata.CdmMetaData.CdmVersion;
22
23 /**
24 * @author a.mueller
25 * @date 02.09.2020
26 */
27 public class SchemaUpdater_5180_5181 extends SchemaUpdaterBase {
28
29 @SuppressWarnings("unused")
30 private static final Logger logger = LogManager.getLogger();
31
32 private static final CdmVersion startSchemaVersion = CdmVersion.V_05_18_00;
33 private static final CdmVersion endSchemaVersion = CdmVersion.V_05_18_01;
34
35 // ********************** FACTORY METHOD *************************************
36
37 public static SchemaUpdater_5180_5181 NewInstance() {
38 return new SchemaUpdater_5180_5181();
39 }
40
41 protected SchemaUpdater_5180_5181() {
42 super(startSchemaVersion.versionString(), endSchemaVersion.versionString());
43 }
44
45 @Override
46 protected List<ISchemaUpdaterStep> getUpdaterList() {
47
48 String stepName;
49
50 List<ISchemaUpdaterStep> stepList = new ArrayList<>();
51
52 //6581
53 //move nomenclatural status reference to source
54 stepName = "rename NomenclaturalSource";
55 String sql = "UPDATE @@OriginalSourceBase@@ "
56 + " SET DTYPE = 'NomenclaturalSource', sourceType='NOR' "
57 + " WHERE id IN (SELECT nomenclaturalSource_id FROM @@TaxonName@@ WHERE nomenclaturalSource_id IS NOT NULL) ";
58 String sql_aud = "UPDATE @@OriginalSourceBase_AUD@@ SET DTYPE = 'NomenclaturalSource', sourceType='NOR' WHERE id IN (SELECT nomenclaturalSource_id FROM @@TaxonName_AUD@@ WHERE nomenclaturalSource_id IS NOT NULL)";
59 SimpleSchemaUpdaterStep.NewAuditedInstance(stepList, stepName, sql, sql_aud);
60
61 return stepList;
62 }
63
64 @Override
65 public ISchemaUpdater getPreviousUpdater() {
66 return SchemaUpdater_5152_5180.NewInstance();
67 }
68 }