Files
cloudron-box/migrations/20250608103424-users-make-avatar-nullable.js
Girish Ramakrishnan a93c85ebc9 profile: drop gravatar support
gravatar is owned by an external entity (Automattic) and we have an
unnecessary dep to this service. users can just upload a profile pic
2025-06-08 18:12:40 +02:00

20 lines
717 B
JavaScript

'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');
};