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