Project

General

Profile

Download (3.1 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.v30_31;
11

    
12
import java.util.ArrayList;
13
import java.util.List;
14

    
15
import org.apache.log4j.Logger;
16

    
17
import eu.etaxonomy.cdm.database.update.ColumnAdder;
18
import eu.etaxonomy.cdm.database.update.ISchemaUpdater;
19
import eu.etaxonomy.cdm.database.update.ISchemaUpdaterStep;
20
import eu.etaxonomy.cdm.database.update.SchemaUpdaterBase;
21
import eu.etaxonomy.cdm.database.update.TableDroper;
22
import eu.etaxonomy.cdm.database.update.UniqueIndexDropper;
23
import eu.etaxonomy.cdm.database.update.v25_30.SchemaUpdater_25_30;
24
import eu.etaxonomy.cdm.database.update.v31_33.SchemaUpdater_31_33;
25

    
26

    
27
/**
28
 * This updater adds the parent_id column to PolytomousKeyNode_AUD
29
 * @author a.mueller
30
 * @since 19.04.2011
31
 */
32
public class SchemaUpdater_30_301 extends SchemaUpdaterBase {
33

    
34

    
35
	@SuppressWarnings("unused")
36
	private static final Logger logger = Logger.getLogger(SchemaUpdater_30_301.class);
37
	private static final String startSchemaVersion = "3.0.0.0.201011090000";
38
	private static final String endSchemaVersion = "3.0.1.0.201104190000";
39

    
40
// ********************** FACTORY METHOD *******************************************
41

    
42
	public static SchemaUpdater_30_301 NewInstance(){
43
		return new SchemaUpdater_30_301();
44
	}
45

    
46
	/**
47
	 * @param startSchemaVersion
48
	 * @param endSchemaVersion
49
	 */
50
	protected SchemaUpdater_30_301() {
51
		super(startSchemaVersion, endSchemaVersion);
52
	}
53

    
54
	@Override
55
	protected List<ISchemaUpdaterStep> getUpdaterList() {
56

    
57
		List<ISchemaUpdaterStep> stepList = new ArrayList<ISchemaUpdaterStep>();
58

    
59
		//drop unique index for DefinedTermBase_media.media_id
60
		ISchemaUpdaterStep step = UniqueIndexDropper.NewInstance("DefinedTermBase_media", "media_id", ! INCLUDE_AUDIT);
61
		stepList.add(step);
62

    
63
		//drop unique index for StateData_DefinedTermBase.modifier_id
64
		//this was part of schema version 2.5 but an updater was never written
65
		step = UniqueIndexDropper.NewInstance("StateData_definedtermbase", "modifiers_id", ! INCLUDE_AUDIT);
66
		stepList.add(step);
67

    
68
		//drop unique index for StateData_DefinedTermBase.modifier_id
69
		//this was part of schema version 2.5 but an updater was never written
70
		step = UniqueIndexDropper.NewInstance("StatisticalMeasurementValue_definedtermbase", "modifiers_id", ! INCLUDE_AUDIT);
71
		stepList.add(step);
72

    
73
		//Makes PolytomousKeyNode parent-child bidirectional
74
		step = ColumnAdder.NewIntegerInstance("Add parent_id to PolytomousKeyNode_AUD", "PolytomousKeyNode_AUD", "parent_id", ! INCLUDE_AUDIT, false, "PolytomousKeyNode");
75
		stepList.add(step);
76
		step = TableDroper.NewInstance("Drop PolytomousKeyNode_PolytomousKeyNode_AUD table", "PolytomousKeyNode_PolytomousKeyNode_AUD", ! INCLUDE_AUDIT);
77
		stepList.add(step);
78

    
79

    
80
		return stepList;
81
	}
82

    
83

    
84
	@Override
85
	public ISchemaUpdater getNextUpdater() {
86
		return SchemaUpdater_31_33.NewInstance();
87
	}
88

    
89
	@Override
90
	public ISchemaUpdater getPreviousUpdater() {
91
		return SchemaUpdater_25_30.NewInstance();
92
	}
93

    
94
}
(2-2/2)