From c7c0842d7a607c541a35ce634ff93a91bb7e5384 Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Mon, 24 Jan 2022 18:34:55 +0000 Subject: [PATCH] Fixing a couple of issues after testing, moving from deleting column to clearing. --- packages/server/src/api/controllers/table/bulkFormula.js | 8 ++++---- packages/server/src/api/controllers/table/utils.js | 4 +--- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/packages/server/src/api/controllers/table/bulkFormula.js b/packages/server/src/api/controllers/table/bulkFormula.js index 330751ab54..ea5abce249 100644 --- a/packages/server/src/api/controllers/table/bulkFormula.js +++ b/packages/server/src/api/controllers/table/bulkFormula.js @@ -1,5 +1,5 @@ const { FieldTypes, FormulaTypes } = require("../../../constants") -const { getAllInternalTables, deleteColumns } = require("./utils") +const { getAllInternalTables, clearColumns } = require("./utils") const { doesContainStrings } = require("@budibase/string-templates") const { cloneDeep } = require("lodash/fp") const { isEqual, uniq } = require("lodash") @@ -53,7 +53,7 @@ async function checkRequiredFormulaUpdates(db, table, { oldTable, deletion }) { } const columnsToDelete = getFormulaThatUseColumn(tableToUse, removed.name) if (columnsToDelete.length > 0) { - await deleteColumns(db, table, columnsToDelete) + await clearColumns(db, table, columnsToDelete) } // need a special case, where a column has been removed from this table, but was used // in a different, related tables formula @@ -80,7 +80,7 @@ async function checkRequiredFormulaUpdates(db, table, { oldTable, deletion }) { ) } if (relatedFormulaToRemove.length > 0) { - await deleteColumns(db, relatedTable, uniq(relatedFormulaToRemove)) + await clearColumns(db, relatedTable, uniq(relatedFormulaToRemove)) } } } @@ -133,7 +133,7 @@ async function updateRelatedFormulaLinksOnTables( if ( relatedTable && (!relatedTable.relatedFormula || - relatedTable.relatedFormula.includes(table._id)) + !relatedTable.relatedFormula.includes(table._id)) ) { relatedTable.relatedFormula = relatedTable.relatedFormula ? [...relatedTable.relatedFormula, table._id] diff --git a/packages/server/src/api/controllers/table/utils.js b/packages/server/src/api/controllers/table/utils.js index d1a8fd82f7..5e3377901a 100644 --- a/packages/server/src/api/controllers/table/utils.js +++ b/packages/server/src/api/controllers/table/utils.js @@ -24,14 +24,12 @@ const viewTemplate = require("../view/viewBuilder") const usageQuota = require("../../../utilities/usageQuota") const { cloneDeep } = require("lodash/fp") -exports.deleteColumns = async (db, table, columnNames) => { - columnNames.forEach(colName => delete table.schema[colName]) +exports.clearColumns = async (db, table, columnNames) => { const rows = await db.allDocs( getRowParams(table._id, null, { include_docs: true, }) ) - await db.put(table) return db.bulkDocs( rows.rows.map(({ doc }) => { columnNames.forEach(colName => delete doc[colName])