Fixing a couple of issues after testing, moving from deleting column to clearing.
This commit is contained in:
parent
ab5c7766b4
commit
da04db39c3
|
@ -1,5 +1,5 @@
|
||||||
const { FieldTypes, FormulaTypes } = require("../../../constants")
|
const { FieldTypes, FormulaTypes } = require("../../../constants")
|
||||||
const { getAllInternalTables, deleteColumns } = require("./utils")
|
const { getAllInternalTables, clearColumns } = require("./utils")
|
||||||
const { doesContainStrings } = require("@budibase/string-templates")
|
const { doesContainStrings } = require("@budibase/string-templates")
|
||||||
const { cloneDeep } = require("lodash/fp")
|
const { cloneDeep } = require("lodash/fp")
|
||||||
const { isEqual, uniq } = require("lodash")
|
const { isEqual, uniq } = require("lodash")
|
||||||
|
@ -53,7 +53,7 @@ async function checkRequiredFormulaUpdates(db, table, { oldTable, deletion }) {
|
||||||
}
|
}
|
||||||
const columnsToDelete = getFormulaThatUseColumn(tableToUse, removed.name)
|
const columnsToDelete = getFormulaThatUseColumn(tableToUse, removed.name)
|
||||||
if (columnsToDelete.length > 0) {
|
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
|
// need a special case, where a column has been removed from this table, but was used
|
||||||
// in a different, related tables formula
|
// in a different, related tables formula
|
||||||
|
@ -80,7 +80,7 @@ async function checkRequiredFormulaUpdates(db, table, { oldTable, deletion }) {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
if (relatedFormulaToRemove.length > 0) {
|
if (relatedFormulaToRemove.length > 0) {
|
||||||
await deleteColumns(db, relatedTable, uniq(relatedFormulaToRemove))
|
await clearColumns(db, relatedTable, uniq(relatedFormulaToRemove))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -133,7 +133,7 @@ async function updateRelatedFormulaLinksOnTables(
|
||||||
if (
|
if (
|
||||||
relatedTable &&
|
relatedTable &&
|
||||||
(!relatedTable.relatedFormula ||
|
(!relatedTable.relatedFormula ||
|
||||||
relatedTable.relatedFormula.includes(table._id))
|
!relatedTable.relatedFormula.includes(table._id))
|
||||||
) {
|
) {
|
||||||
relatedTable.relatedFormula = relatedTable.relatedFormula
|
relatedTable.relatedFormula = relatedTable.relatedFormula
|
||||||
? [...relatedTable.relatedFormula, table._id]
|
? [...relatedTable.relatedFormula, table._id]
|
||||||
|
|
|
@ -24,14 +24,12 @@ const viewTemplate = require("../view/viewBuilder")
|
||||||
const usageQuota = require("../../../utilities/usageQuota")
|
const usageQuota = require("../../../utilities/usageQuota")
|
||||||
const { cloneDeep } = require("lodash/fp")
|
const { cloneDeep } = require("lodash/fp")
|
||||||
|
|
||||||
exports.deleteColumns = async (db, table, columnNames) => {
|
exports.clearColumns = async (db, table, columnNames) => {
|
||||||
columnNames.forEach(colName => delete table.schema[colName])
|
|
||||||
const rows = await db.allDocs(
|
const rows = await db.allDocs(
|
||||||
getRowParams(table._id, null, {
|
getRowParams(table._id, null, {
|
||||||
include_docs: true,
|
include_docs: true,
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
await db.put(table)
|
|
||||||
return db.bulkDocs(
|
return db.bulkDocs(
|
||||||
rows.rows.map(({ doc }) => {
|
rows.rows.map(({ doc }) => {
|
||||||
columnNames.forEach(colName => delete doc[colName])
|
columnNames.forEach(colName => delete doc[colName])
|
||||||
|
|
Loading…
Reference in New Issue