import {Connection} from "mysql"; import MysqlConnectionManager from "./MysqlConnectionManager"; export default abstract class Migration { public readonly version: number; public constructor(version: number) { this.version = version; } public async shouldRun(currentVersion: number): Promise { return this.version > currentVersion; } public abstract async install(connection: Connection): Promise; public abstract async rollback(connection: Connection): Promise; public abstract registerModels(): void; protected async query(queryString: string, connection: Connection): Promise { await MysqlConnectionManager.query(queryString, undefined, connection); } }