This commit is contained in:
Nybkox
2025-04-01 17:32:24 +02:00
parent f2c109116c
commit 83f69d89ff
35 changed files with 1096 additions and 75 deletions

View File

@@ -36,6 +36,8 @@ async function testDatabaseDiff(conn, driver, mangle, createObject = null) {
if (createObject) await driver.query(conn, createObject);
const structure1 = generateDbPairingId(extendDatabaseInfo(await driver.analyseFull(conn)));
console.log('str1');
console.dir(structure1, { depth: 10 });
let structure2 = _.cloneDeep(structure1);
mangle(structure2);
structure2 = extendDatabaseInfo(structure2);

View File

@@ -136,76 +136,76 @@ describe('Alter table', () => {
);
}
const hasEnginesWithNullable = engines.filter(x => !x.skipNullable).length > 0;
if (hasEnginesWithNullable) {
const source = create_engines_columns_source(engines.filter(x => !x.skipNullable));
test.each(source)(
'Change nullability - %s - %s',
testWrapper(async (conn, driver, column, engine) => {
await testTableDiff(
engine,
conn,
driver,
tbl => (tbl.columns = tbl.columns.map(x => (x.columnName == column ? { ...x, notNull: true } : x)))
);
})
);
}
test.each(columnsSource)(
'Rename column - %s - %s',
testWrapper(async (conn, driver, column, engine) => {
await testTableDiff(
engine,
conn,
driver,
tbl => (tbl.columns = tbl.columns.map(x => (x.columnName == column ? { ...x, columnName: 'col_renamed' } : x)))
);
})
);
test.each(engines.map(engine => [engine.label, engine]))(
'Drop index - %s',
testWrapper(async (conn, driver, engine) => {
await testTableDiff(engine, conn, driver, tbl => {
tbl.indexes = [];
});
})
);
const enginesWithDefault = engines.filter(x => !x.skipDefaultValue);
const hasEnginesWithDefault = enginesWithDefault.length > 0;
if (hasEnginesWithDefault) {
test.each(enginesWithDefault.map(engine => [engine.label, engine]))(
'Add default value - %s',
testWrapper(async (conn, driver, engine) => {
await testTableDiff(engine, conn, driver, tbl => {
tbl.columns.find(x => x.columnName == 'col_std').defaultValue = '123';
});
})
);
test.each(enginesWithDefault.map(engine => [engine.label, engine]))(
'Unset default value - %s',
testWrapper(async (conn, driver, engine) => {
await testTableDiff(engine, conn, driver, tbl => {
tbl.columns.find(x => x.columnName == 'col_def').defaultValue = undefined;
});
})
);
test.each(enginesWithDefault.map(engine => [engine.label, engine]))(
'Change default value - %s',
testWrapper(async (conn, driver, engine) => {
await testTableDiff(engine, conn, driver, tbl => {
tbl.columns.find(x => x.columnName == 'col_def').defaultValue = '567';
});
})
);
}
// const hasEnginesWithNullable = engines.filter(x => !x.skipNullable).length > 0;
//
// if (hasEnginesWithNullable) {
// const source = create_engines_columns_source(engines.filter(x => !x.skipNullable));
//
// test.each(source)(
// 'Change nullability - %s - %s',
// testWrapper(async (conn, driver, column, engine) => {
// await testTableDiff(
// engine,
// conn,
// driver,
// tbl => (tbl.columns = tbl.columns.map(x => (x.columnName == column ? { ...x, notNull: true } : x)))
// );
// })
// );
// }
//
// test.each(columnsSource)(
// 'Rename column - %s - %s',
// testWrapper(async (conn, driver, column, engine) => {
// await testTableDiff(
// engine,
// conn,
// driver,
// tbl => (tbl.columns = tbl.columns.map(x => (x.columnName == column ? { ...x, columnName: 'col_renamed' } : x)))
// );
// })
// );
//
// test.each(engines.map(engine => [engine.label, engine]))(
// 'Drop index - %s',
// testWrapper(async (conn, driver, engine) => {
// await testTableDiff(engine, conn, driver, tbl => {
// tbl.indexes = [];
// });
// })
// );
//
// const enginesWithDefault = engines.filter(x => !x.skipDefaultValue);
// const hasEnginesWithDefault = enginesWithDefault.length > 0;
//
// if (hasEnginesWithDefault) {
// test.each(enginesWithDefault.map(engine => [engine.label, engine]))(
// 'Add default value - %s',
// testWrapper(async (conn, driver, engine) => {
// await testTableDiff(engine, conn, driver, tbl => {
// tbl.columns.find(x => x.columnName == 'col_std').defaultValue = '123';
// });
// })
// );
//
// test.each(enginesWithDefault.map(engine => [engine.label, engine]))(
// 'Unset default value - %s',
// testWrapper(async (conn, driver, engine) => {
// await testTableDiff(engine, conn, driver, tbl => {
// tbl.columns.find(x => x.columnName == 'col_def').defaultValue = undefined;
// });
// })
// );
//
// test.each(enginesWithDefault.map(engine => [engine.label, engine]))(
// 'Change default value - %s',
// testWrapper(async (conn, driver, engine) => {
// await testTableDiff(engine, conn, driver, tbl => {
// tbl.columns.find(x => x.columnName == 'col_def').defaultValue = '567';
// });
// })
// );
// }
// test.each(engines.map(engine => [engine.label, engine]))(
// 'Change autoincrement - %s',

View File

@@ -20,7 +20,11 @@ function flatSourceParameters() {
}
function flatSourceTriggers() {
return _.flatten(engines.map(engine => (engine.triggers || []).map(trigger => [engine.label, trigger, engine])));
return _.flatten(
engines
.filter(engine => !engine.skipTriggers)
.map(engine => (engine.triggers || []).map(trigger => [engine.label, trigger, engine]))
);
}
function flatSourceSchedulerEvents() {

View File

@@ -147,6 +147,8 @@ describe('Query', () => {
engine.skipOrderBy ? '' : 'ORDER BY ~id'
}; `
);
console.log('res');
console.dir(results, { depth: 10 });
expect(results.length).toEqual(1);
const res1 = results[0];
@@ -183,8 +185,8 @@ describe('Query', () => {
{ discardResult: true }
);
const res = await runQueryOnDriver(conn, driver, dmp => dmp.put('SELECT COUNT(*) AS ~cnt FROM ~t1'));
// console.log(res);
expect(res.rows[0].cnt == 3).toBeTruthy();
const cnt = parseInt(res.rows[0].cnt);
expect(cnt).toEqual(3);
})
);