1
0
Fork 0
mirror of synced 2024-09-08 21:51:58 +12:00

Fix cleanup relationships

This commit is contained in:
Adria Navarro 2023-09-08 15:08:49 +02:00
parent 5e2e43a7d7
commit 9b783e0804

View file

@ -67,13 +67,15 @@ function cleanupRelationships(
tables: Record<string, Table>,
oldTable?: Table
) {
const tableToIterate = oldTable ? oldTable : table
// clean up relationships in couch table schemas
for (let [key, schema] of Object.entries(tableToIterate.schema)) {
if (
schema.type === FieldTypes.LINK &&
(!oldTable || table.schema[key] == null)
) {
const isUpdate = !!oldTable
if (!isUpdate) {
return
}
// When updating a table, we want to detect if some relationships were removed.
// If so, we want to remove the relationship from the other end
for (let [key, schema] of Object.entries(oldTable.schema)) {
if (schema.type === FieldTypes.LINK && !table.schema[key]) {
const relatedTable = Object.values(tables).find(
table => table._id === schema.tableId
)