Browse Source

clean up index on table deletion

master
Martin McKeaveney 6 years ago
parent
commit
4766d21340
  1. 14
      packages/builder/src/components/backend/DataTable/modals/CreateEditColumn.svelte
  2. 9
      packages/server/src/api/controllers/table.js

14
packages/builder/src/components/backend/DataTable/modals/CreateEditColumn.svelte

@ -89,22 +89,14 @@
}
function onChangePrimaryIndex(e) {
const enabled = e.target.checked
if (enabled) {
indexes[0] = field.name
} else {
indexes.shift()
indexes = indexes
}
indexes = e.target.checked ? [field.name] : []
}
function onChangeSecondaryIndex(e) {
const enabled = e.target.checked
if (enabled) {
if (e.target.checked) {
indexes[1] = field.name
} else {
indexes.pop()
indexes = indexes
indexes = indexes.slice(0, 1)
}
}

9
packages/server/src/api/controllers/table.js

@ -212,6 +212,15 @@ exports.destroy = async function(ctx) {
// don't remove the table itself until very end
await db.remove(tableToDelete)
// remove table search index
const currentIndexes = await db.getIndexes()
const existingIndex = currentIndexes.indexes.find(
existing => existing.name === `search:${ctx.params.tableId}`
)
if (existingIndex) {
await db.deleteIndex(existingIndex)
}
ctx.eventEmitter &&
ctx.eventEmitter.emitTable(`table:delete`, appId, tableToDelete)
ctx.status = 200

Loading…
Cancel
Save