import Migration from "../../db/Migration"; import ModelFactory from "../../db/ModelFactory"; import User from "../models/User"; import UserNameComponent from "../models/UserNameComponent"; import MagicLink from "../models/MagicLink"; import MagicLinkUserNameComponent from "../models/MagicLinkUserNameComponent"; export default class AddNameToUsersMigration extends Migration { public async install(): Promise { await this.query(`ALTER TABLE users ADD COLUMN name VARCHAR(64) UNIQUE NOT NULL`); await this.query(`ALTER TABLE magic_links ADD COLUMN username VARCHAR(64) DEFAULT NULL`); } public async rollback(): Promise { await this.query('ALTER TABLE users DROP COLUMN name'); await this.query('ALTER TABLE magic_links DROP COLUMN username'); } public registerModels(): void { ModelFactory.get(User).addComponent(UserNameComponent); ModelFactory.get(MagicLink).addComponent(MagicLinkUserNameComponent); } }