From ccf7323589e018d53b5ec72a62060a56b7fdfb99 Mon Sep 17 00:00:00 2001 From: Vyacheslav Tumanov Date: Fri, 10 May 2024 20:16:07 +0500 Subject: [PATCH] migration & query fix (#5579) Signed-off-by: Vyacheslav Tumanov --- models/tracker/src/migration.ts | 33 +++++++++++++++++++++++++++++++++ packages/core/src/memdb.ts | 2 +- 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/models/tracker/src/migration.ts b/models/tracker/src/migration.ts index bf51af9604..1da50efed8 100644 --- a/models/tracker/src/migration.ts +++ b/models/tracker/src/migration.ts @@ -354,6 +354,35 @@ async function migrateDefaultProjectOwners (client: MigrationClient): Promise { + await client.update( + DOMAIN_TX, + { + objectClass: task.class.TaskType, + 'attributes.ofClass': tracker.class.Issue, + 'attributes.statusClass': core.class.Status + }, + { + $set: { + 'attributes.statusClass': tracker.class.IssueStatus + } + } + ) + + await client.update( + DOMAIN_STATUS, + { + _class: core.class.Status, + ofAttribute: tracker.attribute.IssueStatus + }, + { + $set: { + _class: tracker.class.IssueStatus + } + } + ) +} + export const trackerOperation: MigrateOperation = { async preMigrate (client: MigrationClient, logger: ModelLogger): Promise { await tryMigrate(client, trackerId, [ @@ -373,6 +402,10 @@ export const trackerOperation: MigrateOperation = { state: 'passIdentifierToParentInfo', func: passIdentifierToParentInfo }, + { + state: 'fixIncorrectIssueStatuses', + func: migrateIssueStatuses + }, { state: 'statusesToModel-2', func: migrateStatusesToModel diff --git a/packages/core/src/memdb.ts b/packages/core/src/memdb.ts index bf6d184b00..5fe5dc5200 100644 --- a/packages/core/src/memdb.ts +++ b/packages/core/src/memdb.ts @@ -58,7 +58,7 @@ export abstract class MemDb extends TxProcessor implements Storage { const obj = this.objectById.get(query._id) as T if (obj !== undefined && this.hierarchy.isDerived(obj._class, _class)) result.push(obj) } else if (query._id?.$in !== undefined) { - const ids = query._id.$in + const ids = new Set(query._id.$in) for (const id of ids) { const obj = this.objectById.get(id) as T if (obj !== undefined && this.hierarchy.isDerived(obj._class, _class)) result.push(obj)