import {Connection} from "mysql"; import Migration from "swaf/db/Migration"; import ModelFactory from "swaf/db/ModelFactory"; import AuthToken from "../models/AuthToken"; export default class CreateAuthTokensTable extends Migration { public async install(connection: Connection): Promise { await this.query(`CREATE TABLE auth_tokens ( id INT NOT NULL AUTO_INCREMENT, user_id INT NOT NULL, secret VARCHAR(64) UNIQUE NOT NULL, created_at DATETIME NOT NULL DEFAULT NOW(), used_at DATETIME NOT NULL DEFAULT NOW(), ttl INT UNSIGNED NOT NULL, PRIMARY KEY (id) )`, connection); } public async rollback(connection: Connection): Promise { await this.query(`DROP TABLE IF EXISTS auth_tokens`, connection); } public registerModels(): void { ModelFactory.register(AuthToken); } }