Fix migration (#2593)

Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
This commit is contained in:
Denis Bykhov 2023-02-07 10:47:07 +06:00 committed by GitHub
parent 9fef46b059
commit 33b06c24dc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -13,16 +13,16 @@
// limitations under the License. // limitations under the License.
// //
import { getCategories } from '@anticrm/skillset'
import { Organization } from '@hcengineering/contact' import { Organization } from '@hcengineering/contact'
import core, { Doc, DOMAIN_TX, Ref, Space, TxCreateDoc, TxOperations } from '@hcengineering/core' import core, { Doc, DOMAIN_TX, Ref, Space, TxCollectionCUD, TxOperations } from '@hcengineering/core'
import { createOrUpdate, MigrateOperation, MigrationClient, MigrationUpgradeClient } from '@hcengineering/model' import { createOrUpdate, MigrateOperation, MigrationClient, MigrationUpgradeClient } from '@hcengineering/model'
import { DOMAIN_CALENDAR } from '@hcengineering/model-calendar' import { DOMAIN_CALENDAR } from '@hcengineering/model-calendar'
import contact, { DOMAIN_CONTACT } from '@hcengineering/model-contact' import contact, { DOMAIN_CONTACT } from '@hcengineering/model-contact'
import { DOMAIN_SPACE } from '@hcengineering/model-core' import { DOMAIN_SPACE } from '@hcengineering/model-core'
import tags, { TagCategory } from '@hcengineering/model-tags' import tags, { TagCategory } from '@hcengineering/model-tags'
import { createKanbanTemplate, createSequence, DOMAIN_TASK } from '@hcengineering/model-task' import { createKanbanTemplate, createSequence, DOMAIN_TASK } from '@hcengineering/model-task'
import { Applicant, Vacancy } from '@hcengineering/recruit' import { Applicant, Candidate, Vacancy } from '@hcengineering/recruit'
import { getCategories } from '@anticrm/skillset'
import { KanbanTemplate } from '@hcengineering/task' import { KanbanTemplate } from '@hcengineering/task'
import recruit from './plugin' import recruit from './plugin'
@ -39,20 +39,25 @@ async function fixImportedTitle (client: MigrationClient): Promise<void> {
} }
async function setCreate (client: MigrationClient): Promise<void> { async function setCreate (client: MigrationClient): Promise<void> {
const docs = await client.find<Applicant>(DOMAIN_TASK, { while (true) {
const docs = await client.find<Applicant>(
DOMAIN_TASK,
{
_class: recruit.class.Applicant, _class: recruit.class.Applicant,
createOn: { $exists: false } createOn: { $exists: false }
},
{ limit: 500 }
)
if (docs.length === 0) break
const txex = await client.find<TxCollectionCUD<Candidate, Applicant>>(DOMAIN_TX, {
'tx.objectId': { $in: docs.map((it) => it._id) },
'tx._class': core.class.TxCreateDoc
}) })
for (const doc of docs) { for (const doc of docs) {
const tx = ( const tx = txex.find((it) => it.tx.objectId === doc._id)
await client.find<TxCreateDoc<Applicant>>(DOMAIN_TX, {
objectId: doc._id,
_class: core.class.TxCreateDoc
})
)[0]
if (tx !== undefined) { if (tx !== undefined) {
await client.update( await client.update(
DOMAIN_CONTACT, DOMAIN_TASK,
{ {
_id: doc._id _id: doc._id
}, },
@ -66,11 +71,12 @@ async function setCreate (client: MigrationClient): Promise<void> {
_id: tx._id _id: tx._id
}, },
{ {
'attributes.createOn': tx.modifiedOn 'tx.attributes.createOn': tx.modifiedOn
} }
) )
} }
} }
}
} }
export const recruitOperation: MigrateOperation = { export const recruitOperation: MigrateOperation = {