deploy DB WIP

This commit is contained in:
Jan Prochazka 2021-10-05 21:52:04 +02:00
parent b332cff588
commit 57fdaf5073
3 changed files with 21 additions and 31 deletions

View File

@ -23,6 +23,7 @@ async function testDatabaseDeploy(conn, driver, dbModelsYaml) {
driver, driver,
loadedDbModel, loadedDbModel,
}); });
console.debug('Generated deploy script:', sql);
expect(sql.toUpperCase().includes('DROP ')).toBeFalsy(); expect(sql.toUpperCase().includes('DROP ')).toBeFalsy();
await deployDb({ await deployDb({

View File

@ -116,10 +116,10 @@ const engines = [
const filterLocal = [ const filterLocal = [
// filter local testing // filter local testing
'-MySQL', 'MySQL',
'-PostgreSQL', '-PostgreSQL',
'-SQL Server', '-SQL Server',
'SQLite', '-SQLite',
'-CockroachDB', '-CockroachDB',
]; ];

View File

@ -117,7 +117,7 @@ export function testEqualColumns(
//} //}
if (a.computedExpression != b.computedExpression) { if (a.computedExpression != b.computedExpression) {
console.debug( console.debug(
`Column ${a.columnName}, ${b.columnName}: different computed expression: ${a.computedExpression}, ${b.computedExpression}` `Column ${a.pureName}.${a.columnName}, ${b.pureName}.${b.columnName}: different computed expression: ${a.computedExpression}, ${b.computedExpression}`
); );
// opts.DiffLogger.Trace( // opts.DiffLogger.Trace(
// 'Column {0}, {1}: different computed expression: {2}; {3}', // 'Column {0}, {1}: different computed expression: {2}; {3}',
@ -135,7 +135,7 @@ export function testEqualColumns(
if (a.defaultValue == null) { if (a.defaultValue == null) {
if (a.defaultValue != b.defaultValue) { if (a.defaultValue != b.defaultValue) {
console.debug( console.debug(
`Column ${a.columnName}, ${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(
@ -150,7 +150,7 @@ export function testEqualColumns(
} else { } else {
if (a.defaultValue != b.defaultValue) { if (a.defaultValue != b.defaultValue) {
console.debug( console.debug(
`Column ${a.columnName}, ${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(
@ -165,7 +165,7 @@ export function testEqualColumns(
} }
if (a.defaultConstraint != b.defaultConstraint) { if (a.defaultConstraint != b.defaultConstraint) {
console.debug( console.debug(
`Column ${a.columnName}, ${b.columnName}: different default constraint: ${a.defaultConstraint}, ${b.defaultConstraint}` `Column ${a.pureName}.${a.columnName}, ${b.pureName}.${b.columnName}: different default constraint: ${a.defaultConstraint}, ${b.defaultConstraint}`
); );
// opts.DiffLogger.Trace( // opts.DiffLogger.Trace(
@ -179,21 +179,25 @@ export function testEqualColumns(
} }
} }
if ((a.notNull || false) != (b.notNull || false)) { if ((a.notNull || false) != (b.notNull || false)) {
console.debug(`Column ${a.columnName}, ${b.columnName}: different nullability: ${a.notNull}, ${b.notNull}`); console.debug(
`Column ${a.pureName}.${a.columnName}, ${b.pureName}.${b.columnName}: different nullability: ${a.notNull}, ${b.notNull}`
);
// opts.DiffLogger.Trace('Column {0}, {1}: different nullable: {2}; {3}', a, b, a.NotNull, b.NotNull); // opts.DiffLogger.Trace('Column {0}, {1}: different nullable: {2}; {3}', a, b, a.NotNull, b.NotNull);
return false; return false;
} }
if ((a.autoIncrement || false) != (b.autoIncrement || false)) { if ((a.autoIncrement || false) != (b.autoIncrement || false)) {
console.debug( console.debug(
`Column ${a.columnName}, ${b.columnName}: different autoincrement: ${a.autoIncrement}, ${b.autoIncrement}` `Column ${a.pureName}.${a.columnName}, ${b.pureName}.${b.columnName}: different autoincrement: ${a.autoIncrement}, ${b.autoIncrement}`
); );
// opts.DiffLogger.Trace('Column {0}, {1}: different autoincrement: {2}; {3}', a, b, a.AutoIncrement, b.AutoIncrement); // opts.DiffLogger.Trace('Column {0}, {1}: different autoincrement: {2}; {3}', a, b, a.AutoIncrement, b.AutoIncrement);
return false; return false;
} }
if ((a.isSparse || false) != (b.isSparse || false)) { if ((a.isSparse || false) != (b.isSparse || false)) {
console.debug(`Column ${a.columnName}, ${b.columnName}: different is_sparse: ${a.isSparse}, ${b.isSparse}`); console.debug(
`Column ${a.pureName}.${a.columnName}, ${b.pureName}.${b.columnName}: different is_sparse: ${a.isSparse}, ${b.isSparse}`
);
// opts.DiffLogger.Trace('Column {0}, {1}: different is_sparse: {2}; {3}', a, b, a.IsSparse, b.IsSparse); // opts.DiffLogger.Trace('Column {0}, {1}: different is_sparse: {2}; {3}', a, b, a.IsSparse, b.IsSparse);
return false; return false;
@ -232,35 +236,20 @@ export function testEqualColumns(
} }
function testEqualConstraints(a: ConstraintInfo, b: ConstraintInfo, opts: DbDiffOptions = {}) { function testEqualConstraints(a: ConstraintInfo, b: ConstraintInfo, opts: DbDiffOptions = {}) {
if (a.constraintType=='primaryKey' && b.constraintType=='primaryKey') {
}
return stableStringify(a) == stableStringify(b); return stableStringify(a) == stableStringify(b);
} }
export function testEqualTypes(a: ColumnInfo, b: ColumnInfo, opts: DbDiffOptions = {}) { export function testEqualTypes(a: ColumnInfo, b: ColumnInfo, opts: DbDiffOptions = {}) {
if (a.dataType != b.dataType) { if ((a.dataType || '').toLowerCase() != (b.dataType || '').toLowerCase()) {
console.debug(`Column ${a.columnName}, ${b.columnName}: different data type: ${a.dataType}, ${b.dataType}`); console.debug(
`Column ${a.pureName}.${a.columnName}, ${b.pureName}.${b.columnName}: different data type: ${a.dataType}, ${b.dataType}`
// opts.DiffLogger.Trace("Column {0}, {1}: different types: {2}; {3}", a, b, a.DataType, b.DataType); );
return false; return false;
} }
//if (a.Length != b.Length)
//{
// opts.DiffLogger.Trace("Column {0}, {1}: different lengths: {2}; {3}", a, b, a.Length, b.Length);
// return false;
//}
//if (a.Precision != b.Precision)
//{
// opts.DiffLogger.Trace("Column {0}, {1}: different lengths: {2}; {3}", a, b, a.Precision, b.Precision);
// return false;
//}
//if (a.Scale != b.Scale)
//{
// opts.DiffLogger.Trace("Column {0}, {1}: different scale: {2}; {3}", a, b, a.Scale, b.Scale);
// return false;
//}
return true; return true;
} }