wip
This commit is contained in:
		
							parent
							
								
									a048939cf1
								
							
						
					
					
						commit
						5e9fb8bd84
					
				
					 6 changed files with 15 additions and 53 deletions
				
			
		
							
								
								
									
										57
									
								
								cli/migration/2.0.0.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								cli/migration/2.0.0.js
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,57 @@ | |||
| // for Node.js interpret
 | ||||
| 
 | ||||
| const chalk = require('chalk'); | ||||
| const sequential = require('promise-sequential'); | ||||
| 
 | ||||
| const { default: User } = require('../../built/models/user'); | ||||
| const { default: DriveFile } = require('../../built/models/drive-file'); | ||||
| 
 | ||||
| async function main() { | ||||
| 	const promiseGens = []; | ||||
| 
 | ||||
| 	const count = await DriveFile.count({}); | ||||
| 
 | ||||
| 	let prev; | ||||
| 
 | ||||
| 	for (let i = 0; i < count; i++) { | ||||
| 		promiseGens.push(() => { | ||||
| 			const promise = new Promise(async (res, rej) => { | ||||
| 				const file = await DriveFile.findOne(prev ? { | ||||
| 					_id: { $gt: prev._id } | ||||
| 				} : {}, { | ||||
| 					sort: { | ||||
| 						_id: 1 | ||||
| 					} | ||||
| 				}); | ||||
| 
 | ||||
| 				prev = file; | ||||
| 
 | ||||
| 				const user = await User.findOne({ _id: file.metadata.userId }); | ||||
| 
 | ||||
| 				DriveFile.update({ | ||||
| 					_id: file._id | ||||
| 				}, { | ||||
| 					$set: { | ||||
| 						'metadata._user': { | ||||
| 							host: user.host | ||||
| 						} | ||||
| 					} | ||||
| 				}).then(() => { | ||||
| 					res([i, file]); | ||||
| 				}).catch(rej); | ||||
| 			}); | ||||
| 
 | ||||
| 			promise.then(([i, file]) => { | ||||
| 				console.log(chalk`{gray ${i}} {green done: {bold ${file._id}} ${file.filename}}`); | ||||
| 			}); | ||||
| 
 | ||||
| 			return promise; | ||||
| 		}); | ||||
| 	} | ||||
| 
 | ||||
| 	return await sequential(promiseGens); | ||||
| } | ||||
| 
 | ||||
| main().then(() => { | ||||
| 	console.log('ALL DONE'); | ||||
| }).catch(console.error); | ||||
							
								
								
									
										71
									
								
								cli/migration/2.4.0.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								cli/migration/2.4.0.js
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,71 @@ | |||
| // for Node.js interpret
 | ||||
| 
 | ||||
| const chalk = require('chalk'); | ||||
| const sequential = require('promise-sequential'); | ||||
| 
 | ||||
| const { default: User } = require('../../built/models/user'); | ||||
| const { default: DriveFile } = require('../../built/models/drive-file'); | ||||
| 
 | ||||
| async function main() { | ||||
| 	const promiseGens = []; | ||||
| 
 | ||||
| 	const count = await User.count({}); | ||||
| 
 | ||||
| 	let prev; | ||||
| 
 | ||||
| 	for (let i = 0; i < count; i++) { | ||||
| 		promiseGens.push(() => { | ||||
| 			const promise = new Promise(async (res, rej) => { | ||||
| 				const user = await User.findOne(prev ? { | ||||
| 					_id: { $gt: prev._id } | ||||
| 				} : {}, { | ||||
| 					sort: { | ||||
| 						_id: 1 | ||||
| 					} | ||||
| 				}); | ||||
| 
 | ||||
| 				prev = user; | ||||
| 
 | ||||
| 				const set = {}; | ||||
| 
 | ||||
| 				if (user.avatarId != null) { | ||||
| 					const file = await DriveFile.findOne({ _id: user.avatarId }); | ||||
| 
 | ||||
| 					if (file && file.metadata.properties.avgColor) { | ||||
| 						set.avatarColor = file.metadata.properties.avgColor; | ||||
| 					} | ||||
| 				} | ||||
| 
 | ||||
| 				if (user.bannerId != null) { | ||||
| 					const file = await DriveFile.findOne({ _id: user.bannerId }); | ||||
| 
 | ||||
| 					if (file && file.metadata.properties.avgColor) { | ||||
| 						set.bannerColor = file.metadata.properties.avgColor; | ||||
| 					} | ||||
| 				} | ||||
| 
 | ||||
| 				if (Object.keys(set).length === 0) return res([i, user]); | ||||
| 
 | ||||
| 				User.update({ | ||||
| 					_id: user._id | ||||
| 				}, { | ||||
| 					$set: set | ||||
| 				}).then(() => { | ||||
| 					res([i, user]); | ||||
| 				}).catch(rej); | ||||
| 			}); | ||||
| 
 | ||||
| 			promise.then(([i, user]) => { | ||||
| 				console.log(chalk`{gray ${i}} {green done: {bold ${user._id}} @${user.username}}`); | ||||
| 			}); | ||||
| 
 | ||||
| 			return promise; | ||||
| 		}); | ||||
| 	} | ||||
| 
 | ||||
| 	return await sequential(promiseGens); | ||||
| } | ||||
| 
 | ||||
| main().then(() => { | ||||
| 	console.log('ALL DONE'); | ||||
| }).catch(console.error); | ||||
							
								
								
									
										10
									
								
								cli/migration/5.0.0.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								cli/migration/5.0.0.js
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,10 @@ | |||
| const { default: DriveFile } = require('../../built/models/drive-file'); | ||||
| 
 | ||||
| DriveFile.update({}, { | ||||
| 	$rename: { | ||||
| 		'metadata.url': 'metadata.src', | ||||
| 		'metadata.isMetaOnly': 'metadata.withoutChunks', | ||||
| 	} | ||||
| }, { | ||||
| 	multi: true | ||||
| }); | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue