2021-04-29 12:49:48 -07:00
|
|
|
'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);
|
2021-05-02 23:28:41 -07:00
|
|
|
}, function (error) {
|
|
|
|
|
if (error) return callback(error);
|
|
|
|
|
|
|
|
|
|
fs.rmdir(AVATAR_DIR, { recursive: true }, callback);
|
|
|
|
|
});
|
2021-04-29 12:49:48 -07:00
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
exports.down = function(db, callback) {
|
|
|
|
|
db.runSql('ALTER TABLE users DROP COLUMN avatar', function (error) {
|
|
|
|
|
if (error) console.error(error);
|
|
|
|
|
callback(error);
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|