mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-05-01 13:13:58 +00:00
mysql analyser & comparer fix
This commit is contained in:
@@ -142,6 +142,12 @@ function testEqualFullNames(lft: NamedObjectInfo, rgt: NamedObjectInfo, opts: Db
|
|||||||
return testEqualSchemas(lft.schemaName, rgt.schemaName, opts) && testEqualNames(lft.pureName, rgt.pureName, opts);
|
return testEqualSchemas(lft.schemaName, rgt.schemaName, opts) && testEqualNames(lft.pureName, rgt.pureName, opts);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function testEqualDefaultValues(value1: string | null | undefined, value2: string | null | undefined) {
|
||||||
|
if (value1 == null) return value2 == null || value2 == 'NULL';
|
||||||
|
if (value2 == null) return value1 == null || value1 == 'NULL';
|
||||||
|
return value1 == value2;
|
||||||
|
}
|
||||||
|
|
||||||
export function testEqualColumns(
|
export function testEqualColumns(
|
||||||
a: ColumnInfo,
|
a: ColumnInfo,
|
||||||
b: ColumnInfo,
|
b: ColumnInfo,
|
||||||
@@ -175,36 +181,19 @@ export function testEqualColumns(
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (checkDefault) {
|
if (checkDefault) {
|
||||||
if (a.defaultValue == null) {
|
if (!testEqualDefaultValues(a.defaultValue, b.defaultValue)) {
|
||||||
if (a.defaultValue != b.defaultValue) {
|
console.debug(
|
||||||
console.debug(
|
`Column ${a.pureName}.${a.columnName}, ${b.pureName}.${b.columnName}: different default value: ${a.defaultValue}, ${b.defaultValue}`
|
||||||
`Column ${a.pureName}.${a.columnName}, ${b.pureName}.${b.columnName}: different default value: ${a.defaultValue}, ${b.defaultValue}`
|
);
|
||||||
);
|
|
||||||
|
|
||||||
// opts.DiffLogger.Trace(
|
// opts.DiffLogger.Trace(
|
||||||
// 'Column {0}, {1}: different default values: {2}; {3}',
|
// 'Column {0}, {1}: different default values: {2}; {3}',
|
||||||
// a,
|
// a,
|
||||||
// b,
|
// b,
|
||||||
// a.DefaultValue,
|
// a.DefaultValue,
|
||||||
// b.DefaultValue
|
// b.DefaultValue
|
||||||
// );
|
// );
|
||||||
return false;
|
return false;
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (a.defaultValue != b.defaultValue) {
|
|
||||||
console.debug(
|
|
||||||
`Column ${a.pureName}.${a.columnName}, ${b.pureName}.${b.columnName}: different default value: ${a.defaultValue}, ${b.defaultValue}`
|
|
||||||
);
|
|
||||||
|
|
||||||
// opts.DiffLogger.Trace(
|
|
||||||
// 'Column {0}, {1}: different default values: {2}; {3}',
|
|
||||||
// a,
|
|
||||||
// b,
|
|
||||||
// a.DefaultValue,
|
|
||||||
// b.DefaultValue
|
|
||||||
// );
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (a.defaultConstraint != b.defaultConstraint) {
|
if (a.defaultConstraint != b.defaultConstraint) {
|
||||||
console.debug(
|
console.debug(
|
||||||
|
|||||||
@@ -8,6 +8,8 @@ function quoteDefaultValue(value) {
|
|||||||
if (value == null) return value;
|
if (value == null) return value;
|
||||||
if (!isNaN(value) && !isNaN(parseFloat(value))) return value;
|
if (!isNaN(value) && !isNaN(parseFloat(value))) return value;
|
||||||
if (_.isString(value) && value.startsWith('CURRENT_')) return value;
|
if (_.isString(value) && value.startsWith('CURRENT_')) return value;
|
||||||
|
// keep NULL as default value. Is this really necessary?
|
||||||
|
if (_.isString(value) && value?.toUpperCase() == 'NULL') return 'NULL';
|
||||||
if (_.isString(value)) {
|
if (_.isString(value)) {
|
||||||
return `'${value.replace("'", "\\'")}'`;
|
return `'${value.replace("'", "\\'")}'`;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user