Merge remote-tracking branch 'refs/remotes/origin/master' into domain
This commit is contained in:
		
						commit
						8eebec30b8
					
				
					 1 changed files with 34 additions and 9 deletions
				
			
		| 
						 | 
					@ -1,14 +1,39 @@
 | 
				
			||||||
 | 
					// for Node.js interpret
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const { default: User } = require('../../built/api/models/user');
 | 
					const { default: User } = require('../../built/api/models/user');
 | 
				
			||||||
const { generate } = require('../../built/crypto_key');
 | 
					const { generate } = require('../../built/crypto_key');
 | 
				
			||||||
 | 
					const { default: zip } = require('@prezzemolo/zip')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const updates = [];
 | 
					const migrate = async (user) => {
 | 
				
			||||||
 | 
						const result = await User.update(user._id, {
 | 
				
			||||||
User.find({}).each(function(user) {
 | 
					 | 
				
			||||||
	updates.push(User.update({ _id: user._id }, {
 | 
					 | 
				
			||||||
		$set: {
 | 
							$set: {
 | 
				
			||||||
			'account.keypair': generate(),
 | 
								'account.keypair': generate()
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}));
 | 
						});
 | 
				
			||||||
}).then(function () {
 | 
						return result.ok === 1;
 | 
				
			||||||
	Promise.all(updates)
 | 
					}
 | 
				
			||||||
}).then(process.exit);
 | 
					
 | 
				
			||||||
 | 
					async function main() {
 | 
				
			||||||
 | 
						const count = await User.count({});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						const dop = Number.parseInt(process.argv[2]) || 5
 | 
				
			||||||
 | 
						const idop = ((count - (count % dop)) / dop) + 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return zip(
 | 
				
			||||||
 | 
							1,
 | 
				
			||||||
 | 
							async (time) => {
 | 
				
			||||||
 | 
								console.log(`${time} / ${idop}`)
 | 
				
			||||||
 | 
								const doc = await User.find({}, {
 | 
				
			||||||
 | 
									limit: dop, skip: time * dop
 | 
				
			||||||
 | 
								})
 | 
				
			||||||
 | 
								return Promise.all(doc.map(migrate))
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							idop
 | 
				
			||||||
 | 
						).then(a => {
 | 
				
			||||||
 | 
							const rv = []
 | 
				
			||||||
 | 
							a.forEach(e => rv.push(...e))
 | 
				
			||||||
 | 
							return rv
 | 
				
			||||||
 | 
						})
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					main().then(console.dir).catch(console.error)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue