This is a script for migrating files uploaded to RocketChat from the default GridFS upload store to FileSystem/AmazonS3.
migrate -c [command] -d [targetPath] -r [dbname] -t [target] -d [destination]
Run ./migrate -h to see all available options
- dump : dumps the GridFs stored files into the given folder/s3 bucket and writes a log files
- updatedb : changes the database entries to point to the new store instead of GridFS
- removeblobs : removes migrated files from GridFS
-
Backup your MongoDB database so that you won't loose any data in case of any issues. (MongoDB Backup Methods)
-
Change
Storage Typein RocketChat underAdministration> File UploadtoFileSystemorAmazonS3. Update the relevant configuration under the corresponding head in configuration page. -
Start copying files to the new store
-
File System
./migrate -c dump -d /app/uploads -r rocketchat -t FileSystem -d ./uploads -
S3
./migrate -c dump -d /app/uploads -r rocketchat -t AmazonS3 -d bucket_name
-
-
Update the database to use new store (use
-t AmazonS3if you are migrating to S3)./migrate -c updatedb -d /app/uploads -r rocketchat -t FileSystem -
Check if everything is working correctly. Ensure that there are no files missing.
-
Remove obsolete data from GridFS
./migrate -c removeblobs -d /app/uploads -r rocketchat