add SchemaUpdater for 5.23.0 and fix #9536 (remove old columns and tables)
authorAndreas Müller <a.mueller@bgbm.org>
Thu, 22 Apr 2021 19:33:20 +0000 (21:33 +0200)
committerAndreas Müller <a.mueller@bgbm.org>
Thu, 22 Apr 2021 19:34:08 +0000 (21:34 +0200)
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/metadata/CdmMetaData.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/database/update/v522_523/SchemaUpdater_5220_5230.java [new file with mode: 0644]

index 59dfcfe138986549651ec0831fe0b5c3d4a62d5e..c578a93a9310a49462c161ff3e1a302fda459edd 100644 (file)
@@ -67,7 +67,8 @@ public class CdmMetaData extends CdmBase{
         V_05_18_04("5.18.4.0.20201020"),
         V_05_18_05("5.18.5.0.20201103"),
         V_05_18_06("5.18.6.0.20201124"),
-        V_05_22_00("5.22.0.0.20210315")
+        V_05_22_00("5.22.0.0.20210315"),
+        V_05_23_00("5.23.0.0.20210422")
         ;
         private String versionString;
            private CdmVersion(String versionString){
diff --git a/cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/database/update/v522_523/SchemaUpdater_5220_5230.java b/cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/database/update/v522_523/SchemaUpdater_5220_5230.java
new file mode 100644 (file)
index 0000000..6c6c3ea
--- /dev/null
@@ -0,0 +1,98 @@
+/**
+ * Copyright (C) 2007 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
+package eu.etaxonomy.cdm.database.update.v522_523;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.log4j.Logger;
+
+import eu.etaxonomy.cdm.database.update.ColumnRemover;
+import eu.etaxonomy.cdm.database.update.ISchemaUpdater;
+import eu.etaxonomy.cdm.database.update.ISchemaUpdaterStep;
+import eu.etaxonomy.cdm.database.update.SchemaUpdaterBase;
+import eu.etaxonomy.cdm.database.update.TableDropper;
+import eu.etaxonomy.cdm.database.update.v518_522.SchemaUpdater_5186_5220;
+import eu.etaxonomy.cdm.model.metadata.CdmMetaData.CdmVersion;
+
+/**
+ * @author a.mueller
+ * @date 22.04.2021
+ */
+public class SchemaUpdater_5220_5230 extends SchemaUpdaterBase {
+
+       @SuppressWarnings("unused")
+       private static final Logger logger = Logger.getLogger(SchemaUpdater_5220_5230.class);
+
+       private static final CdmVersion startSchemaVersion = CdmVersion.V_05_22_00;
+       private static final CdmVersion endSchemaVersion = CdmVersion.V_05_23_00;
+
+// ********************** FACTORY METHOD *************************************
+
+       public static SchemaUpdater_5220_5230 NewInstance() {
+               return new SchemaUpdater_5220_5230();
+       }
+
+       protected SchemaUpdater_5220_5230() {
+               super(startSchemaVersion.versionString(), endSchemaVersion.versionString());
+       }
+
+       @Override
+       protected List<ISchemaUpdaterStep> getUpdaterList() {
+
+               String stepName;
+               String tableName;
+               String newColumnName;
+               String referencedTable;
+
+               List<ISchemaUpdaterStep> stepList = new ArrayList<>();
+
+        //#9536
+        //TaxonBase.secMicroReference
+        stepName = "Remove TaxonBase.secMicroReference";
+        tableName = "TaxonBase";
+        String oldColumnName = "secMicroReference";
+        ColumnRemover.NewInstance(stepList, stepName, tableName, oldColumnName, INCLUDE_AUDIT);
+
+        //TaxonBase.sec_id
+        stepName = "Remove TaxonBase.sec_id";
+        tableName = "TaxonBase";
+        oldColumnName = "sec_id";
+        ColumnRemover.NewInstance(stepList, stepName, tableName, oldColumnName, INCLUDE_AUDIT);
+
+        //Classification.microreference
+        stepName = "Remove Classification.microreference";
+        tableName = "Classification";
+        oldColumnName = "microreference";
+        ColumnRemover.NewInstance(stepList, stepName, tableName, oldColumnName, INCLUDE_AUDIT);
+
+        //Classification.reference_id
+        stepName = "Remove Classification.reference_id";
+        tableName = "Classification";
+        oldColumnName = "reference_id";
+        ColumnRemover.NewInstance(stepList, stepName, tableName, oldColumnName, INCLUDE_AUDIT);
+
+        //DescriptionElementBase_OriginalSourceBase
+        stepName = "Remove table DescriptionElementBase_OriginalSourceBase ";
+        tableName = "DescriptionElementBase_OriginalSourceBase";
+        TableDropper.NewInstance(stepList, stepName, tableName, INCLUDE_AUDIT);
+
+        //TaxonName_NomenclaturalStatus
+        stepName = "Remove table TaxonName_NomenclaturalStatus ";
+        tableName = "TaxonName_NomenclaturalStatus";
+        TableDropper.NewInstance(stepList, stepName, tableName, INCLUDE_AUDIT);
+
+        return stepList;
+    }
+
+    @Override
+    public ISchemaUpdater getPreviousUpdater() {
+        return SchemaUpdater_5186_5220.NewInstance();
+    }
+}
\ No newline at end of file