Project

General

Profile

Download (4.37 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.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
}
(3-3/5)