migration & query fix (#5579)

Signed-off-by: Vyacheslav Tumanov <me@slavatumanov.me>
This commit is contained in:
Vyacheslav Tumanov 2024-05-10 20:16:07 +05:00 committed by GitHub
parent 0daac29984
commit ccf7323589
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 34 additions and 1 deletions

View File

@ -354,6 +354,35 @@ async function migrateDefaultProjectOwners (client: MigrationClient): Promise<vo
)
}
async function migrateIssueStatuses (client: MigrationClient): Promise<void> {
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<void> {
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

View File

@ -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)