Update migrate.ts

This commit is contained in:
syuilo 2019-04-08 23:24:44 +09:00
parent 795be20ee1
commit fa6eae2937
No known key found for this signature in database
GPG Key ID: BDC4C49D06AB9D69

View File

@ -4,6 +4,7 @@ import { initDb } from './db/postgre';
import { User } from './models/entities/user'; import { User } from './models/entities/user';
import { getRepository } from 'typeorm'; import { getRepository } from 'typeorm';
import generateUserToken from './server/api/common/generate-native-user-token'; import generateUserToken from './server/api/common/generate-native-user-token';
import { DriveFile } from './models/entities/drive-file';
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;
@ -13,13 +14,14 @@ const uri = `mongodb://${u && p ? `${u}:${p}@` : ''}${(config as any).mongodb.ho
const db = mongo(uri); const db = mongo(uri);
const _User = db.get<any>('users'); const _User = db.get<any>('users');
const _DriveFile = db.get<any>('driveFiles.files');
async function main() { async function main() {
await initDb(); await initDb();
const Users = getRepository(User); const Users = getRepository(User);
const DriveFiles = getRepository(DriveFile);
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({}, {
skip: i skip: i
@ -34,9 +36,40 @@ async function main() {
password: user.password, password: user.password,
isAdmin: user.isAdmin, isAdmin: user.isAdmin,
autoAcceptFollowed: true, autoAcceptFollowed: true,
autoWatch: false autoWatch: false,
name: user.name,
location: user.profile.location,
birthday: user.profile.birthday,
followersCount: user.followersCount,
followingCount: user.followingCount,
notesCount: user.notesCount,
description: user.description,
isBot: user.isBot,
isCat: user.isCat,
isVerified: user.isVerified,
inbox: user.inbox,
sharedInbox: user.sharedInbox,
uri: user.uri,
}); });
console.log(`USER (${i + 1}/${allUsersCount}) ${user.id} DONE`); console.log(`USER (${i + 1}/${allUsersCount}) ${user._id} DONE`);
}
const allDriveFilesCount = await _DriveFile.count();
for (let i = 0; i < allDriveFilesCount; i++) {
const file = await _DriveFile.findOne({}, {
skip: i
});
await DriveFiles.save({
id: file._id.toHexString(),
userId: file.userId.toHexString(),
createdAt: file.uploadDate || new Date(),
md5: file.md5,
name: file.filename,
type: file.contentType,
properties: file.metadata.properties,
size: file.length,
});
console.log(`USER (${i + 1}/${allDriveFilesCount}) ${file._id} DONE`);
} }
} }