mirror of
https://github.com/CodePhiliaX/Chat2DB.git
synced 2025-07-31 03:32:43 +08:00
fix:1107 修复修改排序后丢失注释的问题
This commit is contained in:
@ -174,10 +174,12 @@ public class MysqlSqlBuilder extends DefaultSqlBuilder implements SqlBuilder {
|
|||||||
int a = findIndex(originalArray, targetArray[0]);
|
int a = findIndex(originalArray, targetArray[0]);
|
||||||
TableColumn column = oldTable.getColumnList().stream().filter(col -> StringUtils.equals(col.getName(), originalArray[a])).findFirst().get();
|
TableColumn column = oldTable.getColumnList().stream().filter(col -> StringUtils.equals(col.getName(), originalArray[a])).findFirst().get();
|
||||||
String[] newArray = moveElement(originalArray, a, 0);
|
String[] newArray = moveElement(originalArray, a, 0);
|
||||||
System.out.println(ArrayUtil.toString(newArray));
|
|
||||||
sql.append(" MODIFY COLUMN ");
|
sql.append(" MODIFY COLUMN ");
|
||||||
MysqlColumnTypeEnum typeEnum = MysqlColumnTypeEnum.getByType(column.getColumnType());
|
MysqlColumnTypeEnum typeEnum = MysqlColumnTypeEnum.getByType(column.getColumnType());
|
||||||
sql.append(typeEnum.buildColumn(column));
|
sql.append(typeEnum.buildColumn(column));
|
||||||
|
if (StringUtils.isNotBlank(column.getComment())) {
|
||||||
|
sql.append(" COMMENT '").append(column.getComment()).append("'");
|
||||||
|
}
|
||||||
sql.append(" FIRST;\n");
|
sql.append(" FIRST;\n");
|
||||||
n++;
|
n++;
|
||||||
if (Arrays.equals(newArray, targetArray)) {
|
if (Arrays.equals(newArray, targetArray)) {
|
||||||
@ -196,7 +198,6 @@ public class MysqlSqlBuilder extends DefaultSqlBuilder implements SqlBuilder {
|
|||||||
//System.out.println("Move " + originalArray[a] + " after " + (a > 0 ? originalArray[max] : "start"));
|
//System.out.println("Move " + originalArray[a] + " after " + (a > 0 ? originalArray[max] : "start"));
|
||||||
TableColumn column = oldTable.getColumnList().stream().filter(col -> StringUtils.equals(col.getName(), originalArray[a])).findFirst().get();
|
TableColumn column = oldTable.getColumnList().stream().filter(col -> StringUtils.equals(col.getName(), originalArray[a])).findFirst().get();
|
||||||
String[] newArray = moveElement(originalArray, a, max);
|
String[] newArray = moveElement(originalArray, a, max);
|
||||||
System.out.println(ArrayUtil.toString(newArray));
|
|
||||||
if (n > 0) {
|
if (n > 0) {
|
||||||
sql.append("ALTER TABLE ");
|
sql.append("ALTER TABLE ");
|
||||||
if (StringUtils.isNotBlank(oldTable.getDatabaseName())) {
|
if (StringUtils.isNotBlank(oldTable.getDatabaseName())) {
|
||||||
@ -207,7 +208,9 @@ public class MysqlSqlBuilder extends DefaultSqlBuilder implements SqlBuilder {
|
|||||||
sql.append(" MODIFY COLUMN ");
|
sql.append(" MODIFY COLUMN ");
|
||||||
MysqlColumnTypeEnum typeEnum = MysqlColumnTypeEnum.getByType(column.getColumnType());
|
MysqlColumnTypeEnum typeEnum = MysqlColumnTypeEnum.getByType(column.getColumnType());
|
||||||
sql.append(typeEnum.buildColumn(column));
|
sql.append(typeEnum.buildColumn(column));
|
||||||
sql.append(" ");
|
if (StringUtils.isNotBlank(column.getComment())) {
|
||||||
|
sql.append(" COMMENT '").append(column.getComment()).append("'");
|
||||||
|
}
|
||||||
sql.append(" AFTER ");
|
sql.append(" AFTER ");
|
||||||
sql.append(oldTable.getColumnList().get(max).getName());
|
sql.append(oldTable.getColumnList().get(max).getName());
|
||||||
sql.append(";\n");
|
sql.append(";\n");
|
||||||
@ -238,7 +241,9 @@ public class MysqlSqlBuilder extends DefaultSqlBuilder implements SqlBuilder {
|
|||||||
sql.append(" MODIFY COLUMN ");
|
sql.append(" MODIFY COLUMN ");
|
||||||
MysqlColumnTypeEnum typeEnum = MysqlColumnTypeEnum.getByType(column.getColumnType());
|
MysqlColumnTypeEnum typeEnum = MysqlColumnTypeEnum.getByType(column.getColumnType());
|
||||||
sql.append(typeEnum.buildColumn(column));
|
sql.append(typeEnum.buildColumn(column));
|
||||||
sql.append(" ");
|
if (StringUtils.isNotBlank(column.getComment())) {
|
||||||
|
sql.append(" COMMENT '").append(column.getComment()).append("'");
|
||||||
|
}
|
||||||
sql.append(" AFTER ");
|
sql.append(" AFTER ");
|
||||||
if (i < a) {
|
if (i < a) {
|
||||||
sql.append(originalArray[a]);
|
sql.append(originalArray[a]);
|
||||||
@ -271,7 +276,6 @@ public class MysqlSqlBuilder extends DefaultSqlBuilder implements SqlBuilder {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static boolean isMoveValid(String[] originalArray, String[] targetArray, int i, int a) {
|
private static boolean isMoveValid(String[] originalArray, String[] targetArray, int i, int a) {
|
||||||
System.out.println("i : " + i + " a:" + a);
|
|
||||||
return (i == 0 || a == 0 || !originalArray[i - 1].equals(targetArray[a - 1])) &&
|
return (i == 0 || a == 0 || !originalArray[i - 1].equals(targetArray[a - 1])) &&
|
||||||
(i >= originalArray.length - 1 || a >= targetArray.length - 1 || !originalArray[i + 1].equals(targetArray[a + 1]));
|
(i >= originalArray.length - 1 || a >= targetArray.length - 1 || !originalArray[i + 1].equals(targetArray[a + 1]));
|
||||||
}
|
}
|
||||||
@ -286,7 +290,6 @@ public class MysqlSqlBuilder extends DefaultSqlBuilder implements SqlBuilder {
|
|||||||
System.arraycopy(originalArray, to, newArray, to + 1, from - to);
|
System.arraycopy(originalArray, to, newArray, to + 1, from - to);
|
||||||
}
|
}
|
||||||
newArray[to] = temp;
|
newArray[to] = temp;
|
||||||
System.out.println(ArrayUtil.toString(newArray));
|
|
||||||
return newArray;
|
return newArray;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user