Update migrate.ts

This commit is contained in:
syuilo 2019-04-09 18:41:53 +09:00
parent 815469304f
commit 5133b0a0c0
No known key found for this signature in database
GPG Key ID: BDC4C49D06AB9D69

View File

@ -19,6 +19,7 @@ import { Following } from './models/entities/following';
import { genId } from './misc/gen-id'; import { genId } from './misc/gen-id';
import { Poll } from './models/entities/poll'; import { Poll } from './models/entities/poll';
import { PollVote } from './models/entities/poll-vote'; import { PollVote } from './models/entities/poll-vote';
import { NoteFavorite } from './models/entities/note-favorite';
const u = (config as any).mongodb.user ? encodeURIComponent((config as any).mongodb.user) : null; const u = (config as any).mongodb.user ? encodeURIComponent((config as any).mongodb.user) : null;
const p = (config as any).mongodb.pass ? encodeURIComponent((config as any).mongodb.pass) : null; const p = (config as any).mongodb.pass ? encodeURIComponent((config as any).mongodb.pass) : null;
@ -49,6 +50,7 @@ const _DriveFolder = db.get<any>('driveFolders');
const _Note = db.get<any>('notes'); const _Note = db.get<any>('notes');
const _Following = db.get<any>('following'); const _Following = db.get<any>('following');
const _PollVote = db.get<any>('pollVotes'); const _PollVote = db.get<any>('pollVotes');
const _Favorite = db.get<any>('favorites');
const getDriveFileBucket = async (): Promise<mongo.GridFSBucket> => { const getDriveFileBucket = async (): Promise<mongo.GridFSBucket> => {
const db = await nativeDbConn(); const db = await nativeDbConn();
const bucket = new mongo.GridFSBucket(db, { const bucket = new mongo.GridFSBucket(db, {
@ -66,6 +68,7 @@ async function main() {
const Followings = getRepository(Following); const Followings = getRepository(Following);
const Polls = getRepository(Poll); const Polls = getRepository(Poll);
const PollVotes = getRepository(PollVote); const PollVotes = getRepository(PollVote);
const NoteFavorites = getRepository(NoteFavorite);
async function migrateUser(user: any) { async function migrateUser(user: any) {
await Users.insert({ await Users.insert({
@ -237,12 +240,21 @@ async function main() {
await PollVotes.save({ await PollVotes.save({
id: vote._id.toHexString(), id: vote._id.toHexString(),
createdAt: vote.createdAt, createdAt: vote.createdAt,
noteId: vote.note.id.toHexString(), noteId: vote.noteId.toHexString(),
userId: vote.user.id.toHexString(), userId: vote.userId.toHexString(),
choice: vote.choice choice: vote.choice
}); });
} }
async function migrateNoteFavorite(favorite: any) {
await NoteFavorites.save({
id: favorite._id.toHexString(),
createdAt: favorite.createdAt,
noteId: favorite.noteId.toHexString(),
userId: favorite.userId.toHexString(),
});
}
const allUsersCount = await _User.count(); const allUsersCount = await _User.count();
for (let i = 0; i < allUsersCount; i++) { for (let i = 0; i < allUsersCount; i++) {
const user = await _User.findOne({}, { const user = await _User.findOne({}, {
@ -330,6 +342,20 @@ async function main() {
console.error(e); console.error(e);
} }
} }
const allNoteFavoritesCount = await _Favorite.count();
for (let i = 0; i < allNoteFavoritesCount; i++) {
const favorite = await _Favorite.findOne({}, {
skip: i
});
try {
await migrateNoteFavorite(favorite);
console.log(`FAVORITE (${i + 1}/${allNoteFavoritesCount}) ${favorite._id} ${chalk.green('DONE')}`);
} catch (e) {
console.log(`FAVORITE (${i + 1}/${allNoteFavoritesCount}) ${favorite._id} ${chalk.red('ERR')}`);
console.error(e);
}
}
} }
main(); main();