2021-08-25 16:30:44 +02:00
function copyData ( sourceTable , targetTable , columns ) {
2022-01-06 22:40:14 +01:00
return ` INSERT INTO " ${ targetTable } " SELECT ${
2021-08-25 16:30:44 +02:00
columns === undefined
? '*'
: columns . map ( ( column ) => ` " ${ column } " ` ) . join ( ', ' )
2022-01-06 22:40:14 +01:00
} FROM "${sourceTable}" ; ` ;
2021-01-01 19:42:19 +02:00
}
function dropOriginal ( tableName ) {
2022-01-06 22:40:14 +01:00
return ` DROP TABLE " ${ tableName } " ` ;
2021-01-01 19:42:19 +02:00
}
function renameTable ( tableName , alteredName ) {
2022-01-06 22:40:14 +01:00
return ` ALTER TABLE " ${ tableName } " RENAME TO " ${ alteredName } " ` ;
2021-01-01 19:42:19 +02:00
}
2021-01-01 20:35:54 +02:00
function getTableSql ( tableName ) {
2023-03-31 01:15:04 +09:00
return ` SELECT type, sql FROM sqlite_master WHERE (type='table' OR (type='index' AND sql IS NOT NULL)) AND lower(tbl_name)=' ${ tableName . toLowerCase ( ) } ' ` ;
2021-01-01 20:35:54 +02:00
}
2021-12-13 19:59:01 +01:00
function isForeignCheckEnabled ( ) {
return ` PRAGMA foreign_keys ` ;
}
function setForeignCheck ( enable ) {
return ` PRAGMA foreign_keys = ${ enable ? 'ON' : 'OFF' } ` ;
}
function executeForeignCheck ( ) {
return ` PRAGMA foreign_key_check ` ;
}
2021-01-01 19:42:19 +02:00
module . exports = {
2021-02-03 19:49:42 +01:00
copyData ,
2021-08-25 16:30:44 +02:00
dropOriginal ,
2021-01-01 19:42:19 +02:00
renameTable ,
2021-01-01 20:35:54 +02:00
getTableSql ,
2021-12-13 19:59:01 +01:00
isForeignCheckEnabled ,
setForeignCheck ,
executeForeignCheck ,
2021-01-01 19:42:19 +02:00
} ;