1d57edac02ea4401e8b09c5107e2eb88ee49383f
[cdmlib.git] / cdmlib-persistence / src / main / java / eu / etaxonomy / cdm / database / update / v505_508 / SchemaUpdater_581_582.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
10 package eu.etaxonomy.cdm.database.update.v505_508;
11
12 import java.util.ArrayList;
13 import java.util.List;
14
15 import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;
16
17 import eu.etaxonomy.cdm.database.update.ColumnAdder;
18 import eu.etaxonomy.cdm.database.update.ColumnNameChanger;
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.TableCreator;
23
24 /**
25 * @author a.mueller
26 * @date 14.08.2019
27 */
28 public class SchemaUpdater_581_582 extends SchemaUpdaterBase {
29
30 @SuppressWarnings("unused")
31 private static final Logger logger = LogManager.getLogger(SchemaUpdater_581_582.class);
32
33 private static final String endSchemaVersion = "5.8.2.0.20190815";
34 private static final String startSchemaVersion = "5.8.1.0.20190813";
35
36 // ********************** FACTORY METHOD *************************************
37
38 public static SchemaUpdater_581_582 NewInstance() {
39 return new SchemaUpdater_581_582();
40 }
41
42 protected SchemaUpdater_581_582() {
43 super(startSchemaVersion, endSchemaVersion);
44 }
45
46 @Override
47 protected List<ISchemaUpdaterStep> getUpdaterList() {
48
49 String stepName;
50 String tableName;
51 String newColumnName;
52 String oldColumnName;
53
54 List<ISchemaUpdaterStep> stepList = new ArrayList<>();
55
56 //#8441
57 stepName = "Add FeatureState";
58 tableName = "FeatureState";
59 String[] columnNames = new String[]{"feature_id","state_id"};
60 String[] columnTypes = new String[]{"int","int"};
61 String[] referencedTables = new String[]{"DefinedTermBase","DefinedTermBase"};
62 TableCreator.NewVersionableInstance(stepList, stepName, tableName,
63 columnNames, columnTypes, referencedTables, INCLUDE_AUDIT);
64
65 stepName = "Add TermNode_InapplicableIf";
66 tableName = "TermNode_InapplicableIf";
67 columnNames = new String[]{"TermNode_id","inapplicableIf_id"};
68 columnTypes = new String[]{"int","int"};
69 referencedTables = new String[]{"TermRelation","FeatureState"};
70 boolean includeCdmBaseAttributes = false;
71 TableCreator.NewInstance(stepList, stepName, tableName, columnNames,
72 columnTypes, referencedTables, INCLUDE_AUDIT, includeCdmBaseAttributes)
73 .setPrimaryKeyParams("TermNode_id,inapplicableIf_id", "REV, TermNode_id, inapplicableIf_id");
74
75 stepName = "Add TermNode_OnlyapplicableIf";
76 tableName = "TermNode_OnlyApplicableIf";
77 columnNames = new String[]{"TermNode_id","onlyApplicableIf_id"};
78 columnTypes = new String[]{"int","int"};
79 referencedTables = new String[]{"TermRelation","FeatureState"};
80 includeCdmBaseAttributes = false;
81 TableCreator.NewInstance(stepList, stepName, tableName, columnNames,
82 columnTypes, referencedTables, INCLUDE_AUDIT, includeCdmBaseAttributes)
83 .setPrimaryKeyParams("TermNode_id,onlyApplicableIf_id", "REV, TermNode_id, onlyApplicableIf_id");
84
85 //
86 stepName = "Rename column TermNode_DefinedTermBase_InapplicableIf.inapplicableIf_id";
87 tableName = "TermNode_DefinedTermBase_InapplicableIf";
88 oldColumnName = "inapplicableIf_id";
89 newColumnName = "inapplicableIf_old_id";
90 ColumnNameChanger.NewIntegerInstance(stepList, stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
91
92 //
93 stepName = "Rename column TermNode_DefinedTermBase_OnlyApplicable.onlyApplicableIf_id";
94 tableName = "TermNode_DefinedTermBase_OnlyApplicable";
95 oldColumnName = "onlyApplicableIf_id";
96 newColumnName = "onlyApplicableIf_old_id";
97 ColumnNameChanger.NewIntegerInstance(stepList, stepName, tableName, oldColumnName, newColumnName, INCLUDE_AUDIT);
98
99 //#7957 Add type(s) to DescriptionBase
100 stepName = "Add types to DescriptionBase";
101 tableName = "DescriptionBase";
102 newColumnName ="types";
103 ColumnAdder.NewStringInstance(stepList, stepName, tableName, newColumnName, 255, "#", INCLUDE_AUDIT).setNotNull(true);
104
105 return stepList;
106 }
107
108 @Override
109 public ISchemaUpdater getPreviousUpdater() {
110 return SchemaUpdater_58_581.NewInstance();
111 }
112 }