Project

General

Profile

« Previous | Next » 

Revision 3310d6a0

Added by Andreas Müller almost 6 years ago

ref #7238 fix datatype for renaming Person.lastname and firstname

View differences:

cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/database/update/ColumnNameChanger.java
24 24

  
25 25
    private static final Logger logger = Logger.getLogger(ColumnNameChanger.class);
26 26

  
27
	private final String newColumnName;
28
	private final String oldColumnName;
29
	private final Datatype datatype; //TODO make enum
27
	private String newColumnName;
28
	private String oldColumnName;
29
	private Datatype datatype;
30
	private Integer size;  //only required for MySQL
30 31

  
31 32
	private enum Datatype{
32 33
		integer,
33
		clob
34
		clob,
35
		varchar
34 36
	}
35 37

  
36 38
	public static ColumnNameChanger NewIntegerInstance(String stepName, String tableName, String oldColumnName, String newColumnName, boolean includeAudTable){
37
		return new ColumnNameChanger(stepName, tableName, oldColumnName, newColumnName, includeAudTable, null, Datatype.integer);
39
		return new ColumnNameChanger(stepName, tableName, oldColumnName, newColumnName, includeAudTable, null, Datatype.integer, null);
38 40
	}
39 41

  
40 42
	public static ColumnNameChanger NewClobInstance(String stepName, String tableName, String oldColumnName,
41 43
	        String newColumnName, boolean includeAudTable){
42
		return new ColumnNameChanger(stepName, tableName, oldColumnName, newColumnName, includeAudTable, null, Datatype.clob);
44
		return new ColumnNameChanger(stepName, tableName, oldColumnName, newColumnName, includeAudTable, null, Datatype.clob, null);
43 45
	}
44 46

  
47
    public static ColumnNameChanger NewVarCharInstance(String stepName, String tableName, String oldColumnName,
48
            String newColumnName, int size, boolean includeAudTable){
49
        return new ColumnNameChanger(stepName, tableName, oldColumnName, newColumnName, includeAudTable, null, Datatype.varchar, size);
50
    }
51

  
52
// **************************************** Constructor ***************************************/
53

  
45 54
	protected ColumnNameChanger(String stepName, String tableName, String oldColumnName,
46
	        String newColumnName, boolean includeAudTable, Object defaultValue, Datatype datatype) {
55
	        String newColumnName, boolean includeAudTable, Object defaultValue, Datatype datatype, Integer size) {
47 56
		super(stepName, tableName, includeAudTable);
48 57
		this.newColumnName = newColumnName;
49 58
		this.oldColumnName = oldColumnName;
50 59
		this.datatype = datatype;
60
		this.size = size;
51 61
	}
52 62

  
53 63
    @Override
......
98 108
			return "integer";
99 109
		}else if (this.datatype == Datatype.clob){
100 110
			return "longtext";
101
		}else{
111
		}else if (this.datatype == Datatype.varchar){
112
            return "nvarchar("+size+")";
113
        }else{
102 114
			throw new RuntimeException("Definition type not supported");
103 115
		}
104 116
	}

Also available in: Unified diff