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(): Promise; abstract async rollback(): Promise; }