knex/lib/dialects/sqlite3/schema/internal/sqlite-ddl-operations.js
Zhang Yidong ab1f9ae372
[Sqlite3] Fix can not get table sql because of case sensitive (#5509)
Co-authored-by: Olivier Cavadenti <olivier.cavadenti@gmail.com>
2023-03-30 18:15:04 +02:00

42 lines
1004 B
JavaScript

function copyData(sourceTable, targetTable, columns) {
return `INSERT INTO "${targetTable}" SELECT ${
columns === undefined
? '*'
: columns.map((column) => `"${column}"`).join(', ')
} FROM "${sourceTable}";`;
}
function dropOriginal(tableName) {
return `DROP TABLE "${tableName}"`;
}
function renameTable(tableName, alteredName) {
return `ALTER TABLE "${tableName}" RENAME TO "${alteredName}"`;
}
function getTableSql(tableName) {
return `SELECT type, sql FROM sqlite_master WHERE (type='table' OR (type='index' AND sql IS NOT NULL)) AND lower(tbl_name)='${tableName.toLowerCase()}'`;
}
function isForeignCheckEnabled() {
return `PRAGMA foreign_keys`;
}
function setForeignCheck(enable) {
return `PRAGMA foreign_keys = ${enable ? 'ON' : 'OFF'}`;
}
function executeForeignCheck() {
return `PRAGMA foreign_key_check`;
}
module.exports = {
copyData,
dropOriginal,
renameTable,
getTableSql,
isForeignCheckEnabled,
setForeignCheck,
executeForeignCheck,
};