Merge pull request #4605 from Budibase/fix/formula-col-validation

Removing formula column validation
This commit is contained in:
Michael Drury 2022-02-21 16:02:57 +00:00 committed by GitHub
commit 2be5e5a179
3 changed files with 7 additions and 10 deletions

View File

@ -95,6 +95,8 @@ exports.runMigrations = async (CouchDB, migrations, options = {}) => {
if (!options.tenantIds || !options.tenantIds.length) {
// run for all tenants
tenantIds = await getTenantIds()
} else {
tenantIds = options.tenantIds
}
} else {
// single tenancy

View File

@ -84,10 +84,7 @@ export const FIELDS = {
FORMULA: {
name: "Formula",
type: "formula",
constraints: {
type: "string",
presence: false,
},
constraints: {},
},
JSON: {
name: "JSON",

View File

@ -3,7 +3,6 @@ const { cloneDeep } = require("lodash/fp")
const { InternalTables } = require("../../../db/utils")
const userController = require("../user")
const { FieldTypes } = require("../../../constants")
const { processStringSync } = require("@budibase/string-templates")
const { makeExternalQuery } = require("../../../integrations/base/utils")
const { getAppDB } = require("@budibase/backend-core/context")
@ -52,6 +51,10 @@ exports.validate = async ({ tableId, row, table }) => {
for (let fieldName of Object.keys(table.schema)) {
const constraints = cloneDeep(table.schema[fieldName].constraints)
const type = table.schema[fieldName].type
// formulas shouldn't validated, data will be deleted anyway
if (type === FieldTypes.FORMULA) {
continue
}
// special case for options, need to always allow unselected (null)
if (type === FieldTypes.OPTIONS && constraints.inclusion) {
constraints.inclusion.push(null)
@ -77,11 +80,6 @@ exports.validate = async ({ tableId, row, table }) => {
} catch (err) {
errors[fieldName] = [`Contains invalid JSON`]
}
} else if (type === FieldTypes.FORMULA) {
res = validateJs.single(
processStringSync(table.schema[fieldName].formula, row),
constraints
)
} else {
res = validateJs.single(row[fieldName], constraints)
}