UNPKG

@chevre/domain

Version:

Chevre Domain Library for Node.js

63 lines (53 loc) 1.76 kB
// tslint:disable:no-console import * as mongoose from 'mongoose'; import { chevre } from '../../../../lib/index'; // tslint:disable-next-line:max-func-body-length async function main() { await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false }); const issuerRepo = await chevre.repository.Issuer.createInstance(mongoose.connection); const cursor = issuerRepo.getCursor( { // 'project.id': { $ne: EXCLUDED_PROJECT_ID } }, { _id: 1, project: 1, identifier: 1, url: 1, name: 1 } ); console.log('docs found'); let i = 0; let updateCount = 0; await cursor.eachAsync(async (doc) => { i += 1; const issuer: chevre.factory.issuer.IIssuer = doc.toObject(); const alreadyMigrated = typeof issuer.url === 'string'; if (alreadyMigrated) { console.log( 'already migrated.', issuer.id, issuer.project.id, issuer.identifier, i); } else { console.log( 'updating...', issuer.id, issuer.project.id, issuer.identifier, i); await issuerRepo.saveIssuer({ id: issuer.id, identifier: issuer.identifier, name: { ja: issuer.identifier }, project: issuer.project, url: issuer.identifier }); updateCount += 1; console.log( 'updated.', issuer.id, issuer.project.id, issuer.identifier, i); } }); console.log(i, 'docs checked'); console.log(updateCount, 'docs updated'); } main() .then() .catch(console.error);