Files
cloudron-box/migrations/20250608103424-users-make-avatar-nullable.js

20 lines
717 B
JavaScript
Raw Normal View History

'use strict';
exports.up = async function (db) {
const AVATAR_NONE = Buffer.from('', 'utf8');
const AVATAR_GRAVATAR = Buffer.from('gravatar', 'utf8');
await db.runSql('ALTER TABLE users MODIFY avatar MEDIUMBLOB'); // remove NOT NULL
const allUsers = await db.runSql('SELECT id, avatar FROM users', []);
for (const user of allUsers) {
if (AVATAR_GRAVATAR.equals(user.avatar) || AVATAR_NONE.equals(user.avatar)) {
await db.runSql('UPDATE users SET avatar=? WHERE id=?', [ null, user.id ]); // drops avatar support. empty avatar is now null
}
}
};
exports.down = async function (db) {
await db.runSql('ALTER TABLE users MODIFY avatar MEDIUMBLOB NOT NULL');
};