From de1dc72c99856e949293d44db2d7f502503e63ab Mon Sep 17 00:00:00 2001 From: Denis Bykhov <bykhov.denis@gmail.com> Date: Wed, 7 Jun 2023 23:46:27 +0600 Subject: [PATCH] Fix model when clone ws (#3395) Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com> --- packages/core/src/memdb.ts | 8 +++++++- server/account/src/index.ts | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/core/src/memdb.ts b/packages/core/src/memdb.ts index 3e9e07c909..3aa3d0a473 100644 --- a/packages/core/src/memdb.ts +++ b/packages/core/src/memdb.ts @@ -172,7 +172,13 @@ export abstract class MemDb extends TxProcessor implements Storage { addDoc (doc: Doc): void { this.hierarchy.getAncestors(doc._class).forEach((_class) => { - this.getObjectsByClass(_class).push(doc) + const arr = this.getObjectsByClass(_class) + const index = arr.findIndex((p) => p._id === doc._id) + if (index === -1) { + arr.push(doc) + } else { + arr[index] = doc + } }) this.objectById.set(doc._id, doc) } diff --git a/server/account/src/index.ts b/server/account/src/index.ts index 7d37854297..a45a8ca6d9 100644 --- a/server/account/src/index.ts +++ b/server/account/src/index.ts @@ -573,6 +573,7 @@ export async function createWorkspace ( if (initWS !== undefined) { if ((await getWorkspace(db, productId, initWS)) !== null) { await cloneWorkspace(getTransactor(), getWorkspaceId(initWS, productId), getWorkspaceId(workspace, productId)) + await upgradeModel(getTransactor(), getWorkspaceId(workspace, productId), txes, migrationOperation) } } return result