swaf/src/db/Migration.ts

22 lines
681 B
TypeScript
Raw Normal View History

2020-06-04 17:27:05 +02:00
import {Connection} from "mysql";
import MysqlConnectionManager from "./MysqlConnectionManager";
2020-04-22 15:52:17 +02:00
export default abstract class Migration {
public readonly version: number;
constructor(version: number) {
this.version = version;
}
async shouldRun(currentVersion: number): Promise<boolean> {
return this.version > currentVersion;
}
2020-06-04 17:27:05 +02:00
abstract async install(connection: Connection): Promise<void>;
abstract async rollback(connection: Connection): Promise<void>;
2020-04-22 15:52:17 +02:00
2020-06-04 17:27:05 +02:00
protected async query(queryString: string, connection: Connection): Promise<void> {
await MysqlConnectionManager.query(queryString, undefined, connection);
}
2020-04-22 15:52:17 +02:00
}