Commit 135aa8ddb9d075837513db5cc4072d601d50b596

Authored by Igor Kulikov
1 parent 22e5da1c

Fix migration script

@@ -135,7 +135,7 @@ public class CassandraEntitiesToSqlMigrateService implements EntitiesMigrateServ @@ -135,7 +135,7 @@ public class CassandraEntitiesToSqlMigrateService implements EntitiesMigrateServ
135 stringColumn("entity_type"), 135 stringColumn("entity_type"),
136 stringColumn("attribute_type"), 136 stringColumn("attribute_type"),
137 stringColumn("attribute_key"), 137 stringColumn("attribute_key"),
138 - booleanColumn("bool_v"), 138 + booleanColumn("bool_v", true),
139 stringColumn("str_v"), 139 stringColumn("str_v"),
140 bigintColumn("long_v"), 140 bigintColumn("long_v"),
141 doubleColumn("dbl_v"), 141 doubleColumn("dbl_v"),
@@ -38,6 +38,7 @@ public class CassandraToSqlColumn { @@ -38,6 +38,7 @@ public class CassandraToSqlColumn {
38 private int sqlType; 38 private int sqlType;
39 private int size; 39 private int size;
40 private Class<? extends Enum> enumClass; 40 private Class<? extends Enum> enumClass;
  41 + private boolean allowNullBoolean = false;
41 42
42 public static CassandraToSqlColumn idColumn(String name) { 43 public static CassandraToSqlColumn idColumn(String name) {
43 return new CassandraToSqlColumn(name, CassandraToSqlColumnType.ID); 44 return new CassandraToSqlColumn(name, CassandraToSqlColumnType.ID);
@@ -60,7 +61,11 @@ public class CassandraToSqlColumn { @@ -60,7 +61,11 @@ public class CassandraToSqlColumn {
60 } 61 }
61 62
62 public static CassandraToSqlColumn booleanColumn(String name) { 63 public static CassandraToSqlColumn booleanColumn(String name) {
63 - return new CassandraToSqlColumn(name, CassandraToSqlColumnType.BOOLEAN); 64 + return booleanColumn(name, false);
  65 + }
  66 +
  67 + public static CassandraToSqlColumn booleanColumn(String name, boolean allowNullBoolean) {
  68 + return new CassandraToSqlColumn(name, name, CassandraToSqlColumnType.BOOLEAN, null, allowNullBoolean);
64 } 69 }
65 70
66 public static CassandraToSqlColumn jsonColumn(String name) { 71 public static CassandraToSqlColumn jsonColumn(String name) {
@@ -72,32 +77,33 @@ public class CassandraToSqlColumn { @@ -72,32 +77,33 @@ public class CassandraToSqlColumn {
72 } 77 }
73 78
74 public CassandraToSqlColumn(String columnName) { 79 public CassandraToSqlColumn(String columnName) {
75 - this(columnName, columnName, CassandraToSqlColumnType.STRING, null); 80 + this(columnName, columnName, CassandraToSqlColumnType.STRING, null, false);
76 } 81 }
77 82
78 public CassandraToSqlColumn(String columnName, CassandraToSqlColumnType type) { 83 public CassandraToSqlColumn(String columnName, CassandraToSqlColumnType type) {
79 - this(columnName, columnName, type, null); 84 + this(columnName, columnName, type, null, false);
80 } 85 }
81 86
82 public CassandraToSqlColumn(String columnName, CassandraToSqlColumnType type, Class<? extends Enum> enumClass) { 87 public CassandraToSqlColumn(String columnName, CassandraToSqlColumnType type, Class<? extends Enum> enumClass) {
83 - this(columnName, columnName, type, enumClass); 88 + this(columnName, columnName, type, enumClass, false);
84 } 89 }
85 90
86 public CassandraToSqlColumn(String cassandraColumnName, String sqlColumnName) { 91 public CassandraToSqlColumn(String cassandraColumnName, String sqlColumnName) {
87 - this(cassandraColumnName, sqlColumnName, CassandraToSqlColumnType.STRING, null); 92 + this(cassandraColumnName, sqlColumnName, CassandraToSqlColumnType.STRING, null, false);
88 } 93 }
89 94
90 public CassandraToSqlColumn(String cassandraColumnName, String sqlColumnName, CassandraToSqlColumnType type, 95 public CassandraToSqlColumn(String cassandraColumnName, String sqlColumnName, CassandraToSqlColumnType type,
91 - Class<? extends Enum> enumClass) { 96 + Class<? extends Enum> enumClass, boolean allowNullBoolean) {
92 this.cassandraColumnName = cassandraColumnName; 97 this.cassandraColumnName = cassandraColumnName;
93 this.sqlColumnName = sqlColumnName; 98 this.sqlColumnName = sqlColumnName;
94 this.type = type; 99 this.type = type;
95 this.enumClass = enumClass; 100 this.enumClass = enumClass;
  101 + this.allowNullBoolean = allowNullBoolean;
96 } 102 }
97 103
98 public String getColumnValue(Row row) { 104 public String getColumnValue(Row row) {
99 if (row.isNull(index)) { 105 if (row.isNull(index)) {
100 - if (this.type == CassandraToSqlColumnType.BOOLEAN) { 106 + if (this.type == CassandraToSqlColumnType.BOOLEAN && !this.allowNullBoolean) {
101 return Boolean.toString(false); 107 return Boolean.toString(false);
102 } else { 108 } else {
103 return null; 109 return null;