wip migration
This commit is contained in:
		
							parent
							
								
									735687be21
								
							
						
					
					
						commit
						56860a6bef
					
				
					 2 changed files with 48 additions and 0 deletions
				
			
		|  | @ -12,6 +12,7 @@ | ||||||
| 	"scripts": { | 	"scripts": { | ||||||
| 		"start": "node ./index.js", | 		"start": "node ./index.js", | ||||||
| 		"init": "node ./built/init.js", | 		"init": "node ./built/init.js", | ||||||
|  | 		"migrate": "node ./built/migrate.js", | ||||||
| 		"debug": "DEBUG=misskey:* node ./index.js", | 		"debug": "DEBUG=misskey:* node ./index.js", | ||||||
| 		"build": "webpack && gulp build", | 		"build": "webpack && gulp build", | ||||||
| 		"webpack": "webpack", | 		"webpack": "webpack", | ||||||
|  | @ -66,6 +67,8 @@ | ||||||
| 		"@types/lolex": "3.1.1", | 		"@types/lolex": "3.1.1", | ||||||
| 		"@types/minio": "7.0.1", | 		"@types/minio": "7.0.1", | ||||||
| 		"@types/mocha": "5.2.6", | 		"@types/mocha": "5.2.6", | ||||||
|  | 		"@types/mongodb": "3.1.22", | ||||||
|  | 		"@types/monk": "6.0.0", | ||||||
| 		"@types/node": "11.10.4", | 		"@types/node": "11.10.4", | ||||||
| 		"@types/nodemailer": "4.6.6", | 		"@types/nodemailer": "4.6.6", | ||||||
| 		"@types/nprogress": "0.0.29", | 		"@types/nprogress": "0.0.29", | ||||||
|  | @ -168,6 +171,8 @@ | ||||||
| 		"mocha": "6.0.2", | 		"mocha": "6.0.2", | ||||||
| 		"moji": "0.5.1", | 		"moji": "0.5.1", | ||||||
| 		"moment": "2.24.0", | 		"moment": "2.24.0", | ||||||
|  | 		"mongodb": "3.2.3", | ||||||
|  | 		"monk": "6.0.6", | ||||||
| 		"ms": "2.1.1", | 		"ms": "2.1.1", | ||||||
| 		"nested-property": "0.0.7", | 		"nested-property": "0.0.7", | ||||||
| 		"node-fetch": "2.3.0", | 		"node-fetch": "2.3.0", | ||||||
|  |  | ||||||
							
								
								
									
										43
									
								
								src/migrate.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								src/migrate.ts
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,43 @@ | ||||||
|  | import mongo from 'monk'; | ||||||
|  | import config from './config'; | ||||||
|  | import { initDb } from './db/postgre'; | ||||||
|  | import { User } from './models/entities/user'; | ||||||
|  | import { getRepository } from 'typeorm'; | ||||||
|  | import generateUserToken from './server/api/common/generate-native-user-token'; | ||||||
|  | 
 | ||||||
|  | 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 uri = `mongodb://${u && p ? `${u}:${p}@` : ''}${(config as any).mongodb.host}:${(config as any).mongodb.port}/${(config as any).mongodb.db}`; | ||||||
|  | 
 | ||||||
|  | const db = mongo(uri); | ||||||
|  | 
 | ||||||
|  | const _User = db.get<any>('users'); | ||||||
|  | 
 | ||||||
|  | async function main() { | ||||||
|  | 	await initDb(); | ||||||
|  | 	const Users = getRepository(User); | ||||||
|  | 
 | ||||||
|  | 	const allUsersCount = await _User.count(); | ||||||
|  | 
 | ||||||
|  | 	for (let i = 0; i < allUsersCount; i++) { | ||||||
|  | 		const user = await _User.findOne({}, { | ||||||
|  | 			skip: i | ||||||
|  | 		}); | ||||||
|  | 		await Users.save({ | ||||||
|  | 			id: user._id.toHexString(), | ||||||
|  | 			createdAt: user.createdAt || new Date(), | ||||||
|  | 			username: user.username, | ||||||
|  | 			usernameLower: user.username.toLowerCase(), | ||||||
|  | 			host: user.host, | ||||||
|  | 			token: generateUserToken(), | ||||||
|  | 			password: user.password, | ||||||
|  | 			isAdmin: user.isAdmin, | ||||||
|  | 			autoAcceptFollowed: true, | ||||||
|  | 			autoWatch: false | ||||||
|  | 		}); | ||||||
|  | 		console.log(`USER (${i + 1}/${allUsersCount}) ${user.id} DONE`); | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | main(); | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue