Project

General

Profile

Download (3.02 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
package eu.etaxonomy.cdm.database.update.v515_518;
10

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

    
14
import org.apache.log4j.Logger;
15

    
16
import eu.etaxonomy.cdm.database.update.ColumnAdder;
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_5181_5182 extends SchemaUpdaterBase {
28

    
29
	@SuppressWarnings("unused")
30
	private static final Logger logger = Logger.getLogger(SchemaUpdater_5181_5182.class);
31

    
32
	private static final CdmVersion startSchemaVersion = CdmVersion.V_05_18_01;
33
	private static final CdmVersion endSchemaVersion = CdmVersion.V_05_18_02;
34

    
35
// ********************** FACTORY METHOD *************************************
36

    
37
	public static SchemaUpdater_5181_5182 NewInstance() {
38
		return new SchemaUpdater_5181_5182();
39
	}
40

    
41
	protected SchemaUpdater_5181_5182() {
42
		super(startSchemaVersion.versionString(), endSchemaVersion.versionString());
43
	}
44

    
45
	@Override
46
	protected List<ISchemaUpdaterStep> getUpdaterList() {
47

    
48
		String stepName;
49
		String tableName;
50
		String newColumnName;
51

    
52
		List<ISchemaUpdaterStep> stepList = new ArrayList<>();
53

    
54
//        //6581
55
		stepName = "Add sourcedName column to NomenclaturalSource";
56
		tableName = "OriginalSourceBase";
57
		newColumnName = "sourcedName_id";
58
		String referencedTable = "TaxonName";
59
		//TODO handle NotNull
60
		ColumnAdder.NewIntegerInstance(stepList, stepName, tableName, newColumnName, INCLUDE_AUDIT, !NOT_NULL, referencedTable);
61

    
62
		String sql = "UPDATE @@OriginalSourceBase@@ "
63
		       + " SET sourcedName_id = (SELECT tn.id "
64
               + "         FROM @@TaxonName@@ tn WHERE tn.nomenclaturalSource_id = @@OriginalSourceBase@@.id) "
65
               + " WHERE EXISTS ( "
66
               + "       SELECT * "
67
               + "       FROM @@TaxonName@@ tn "
68
               + "       WHERE tn.nomenclaturalSource_id = @@OriginalSourceBase@@.id)";
69
		String sql_aud = "UPDATE @@OriginalSourceBase_AUD@@ "
70
	               + " SET sourcedName_id = (SELECT tn.id "
71
	               + "         FROM @@TaxonName_AUD@@ tn WHERE tn.nomenclaturalSource_id = @@OriginalSourceBase_AUD@@.id) "
72
	               + " WHERE EXISTS ( "
73
	               + "       SELECT * "
74
	               + "       FROM @@TaxonName_AUD@@ tn "
75
	               + "       WHERE tn.nomenclaturalSource_id = @@OriginalSourceBase_AUD@@.id)";
76
		SimpleSchemaUpdaterStep.NewAuditedInstance(stepList, stepName, sql, sql_aud, -99);
77

    
78
        return stepList;
79
    }
80

    
81
    @Override
82
    public ISchemaUpdater getPreviousUpdater() {
83
        return SchemaUpdater_5180_5181.NewInstance();
84
    }
85
}
(7-7/11)