Major version update. Major bugfixes. Security vulnerabilites fixed
This commit is contained in:
+34
@@ -0,0 +1,34 @@
|
||||
import { sqlQuoteIdent as q } from "../../utils/sql-safe";
|
||||
import createTable from "./create-table";
|
||||
import insertDBManagerTable from "./insert-db-manager-table";
|
||||
import recordSchemaChange from "./record-schema-change";
|
||||
import removeDBManagerTable from "./remove-db-manager-table";
|
||||
import syncIndexes from "./sync-indexes";
|
||||
import updateTable from "./update-table";
|
||||
/**
|
||||
* Sync a single table (rename, create or update, then indexes)
|
||||
*/
|
||||
export default function handleDBSchemaTable(params) {
|
||||
const { db, table, existing_tables } = params;
|
||||
let tableExists = existing_tables.includes(table.tableName);
|
||||
// Handle table rename
|
||||
if (table.tableNameOld &&
|
||||
table.tableNameOld !== table.tableName &&
|
||||
existing_tables.includes(table.tableNameOld)) {
|
||||
recordSchemaChange(params, {
|
||||
description: `Rename table "${table.tableNameOld}" -> "${table.tableName}"`,
|
||||
});
|
||||
db.run(`ALTER TABLE ${q(table.tableNameOld)} RENAME TO ${q(table.tableName)}`);
|
||||
insertDBManagerTable({ db, table_name: table.tableName });
|
||||
removeDBManagerTable({ db, table_name: table.tableNameOld });
|
||||
tableExists = true;
|
||||
}
|
||||
if (!tableExists) {
|
||||
createTable(params);
|
||||
insertDBManagerTable({ db, table_name: table.tableName });
|
||||
}
|
||||
else {
|
||||
updateTable(params);
|
||||
}
|
||||
syncIndexes(params);
|
||||
}
|
||||
Reference in New Issue
Block a user