the infra version is bumped because the nginx's dhparams path has changed and the sftp server key path has changed.
38 lines
1.2 KiB
JavaScript
38 lines
1.2 KiB
JavaScript
'use strict';
|
|
|
|
const async = require('async'),
|
|
fs = require('fs'),
|
|
path = require('path');
|
|
|
|
const AVATAR_DIR = '/home/yellowtent/boxdata/profileicons';
|
|
|
|
exports.up = function(db, callback) {
|
|
db.runSql('ALTER TABLE users ADD COLUMN avatar MEDIUMBLOB', function (error) {
|
|
if (error) return callback(error);
|
|
|
|
fs.readdir(AVATAR_DIR, function (error, filenames) {
|
|
if (error && error.code === 'ENOENT') return callback();
|
|
if (error) return callback(error);
|
|
|
|
async.eachSeries(filenames, function (filename, iteratorCallback) {
|
|
const avatar = fs.readFileSync(path.join(AVATAR_DIR, filename));
|
|
const userId = filename;
|
|
|
|
db.runSql('UPDATE users SET avatar=? WHERE id=?', [ avatar, userId ], iteratorCallback);
|
|
}, function (error) {
|
|
if (error) return callback(error);
|
|
|
|
fs.rmdir(AVATAR_DIR, { recursive: true }, callback);
|
|
});
|
|
});
|
|
});
|
|
};
|
|
|
|
exports.down = function(db, callback) {
|
|
db.runSql('ALTER TABLE users DROP COLUMN avatar', function (error) {
|
|
if (error) console.error(error);
|
|
callback(error);
|
|
});
|
|
};
|
|
|