ily.li/src/migrations/CreateAuthTokensTable.ts

29 lines
1.1 KiB
TypeScript

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<void> {
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<void> {
await this.query(`DROP TABLE IF EXISTS auth_tokens`, connection);
}
public registerModels(): void {
ModelFactory.register(AuthToken);
}
}