diff --git a/src/auth/migrations/AddNameToUsersMigration.ts b/src/auth/migrations/AddNameToUsersMigration.ts index 0c3bfb0..a9eadc6 100644 --- a/src/auth/migrations/AddNameToUsersMigration.ts +++ b/src/auth/migrations/AddNameToUsersMigration.ts @@ -4,13 +4,24 @@ import User from "../models/User"; import UserNameComponent from "../models/UserNameComponent"; import MagicLink from "../models/MagicLink"; import MagicLinkUserNameComponent from "../models/MagicLinkUserNameComponent"; +import {nanoid} from "nanoid"; export default class AddNameToUsersMigration extends Migration { public async install(): Promise { await this.query(`ALTER TABLE users - ADD COLUMN name VARCHAR(64) UNIQUE NOT NULL`); + ADD COLUMN name VARCHAR(64) NOT NULL`); await this.query(`ALTER TABLE magic_links ADD COLUMN username VARCHAR(64) DEFAULT NULL`); + + // Give every user a random name + const users = await User.select().get(this.getCurrentConnection()); + await Promise.all(users.map(user => { + user.name = nanoid(); + return user.save(this.getCurrentConnection()); + })); + + await this.query(`ALTER TABLE users + ADD CONSTRAINT UNIQUE (name)`); } public async rollback(): Promise {