feat: Add pending migrations check during startup (#3744)

* feat: Add pending migrations check during startup

* fix: migration pending log message

Co-authored-by: Tom Moor <tom.moor@gmail.com>

Co-authored-by: Tom Moor <tom.moor@gmail.com>
This commit is contained in:
CuriousCorrelation
2022-07-09 00:00:16 +05:30
committed by GitHub
parent 4a46d19846
commit 746dc30aeb
2 changed files with 32 additions and 1 deletions

View File

@@ -1,9 +1,35 @@
import { execSync } from "child_process";
import chalk from "chalk";
import env from "@server/env";
import Logger from "@server/logging/Logger";
import AuthenticationProvider from "@server/models/AuthenticationProvider";
import Team from "@server/models/Team";
export function checkPendingMigrations() {
const commandResult = execSync("yarn sequelize db:migrate:status");
const commandResultArray = Buffer.from(commandResult)
.toString("utf-8")
.split("\n");
const pendingMigrations = commandResultArray.filter((line) =>
line.startsWith("down")
);
if (pendingMigrations.length) {
Logger.warn("You have pending migrations");
Logger.warn(
pendingMigrations
.map((line, i) => `${i + 1}. ${line.replace("down ", "")}`)
.join("\n")
);
Logger.warn(
"Please run `yarn db:migrate` or `yarn db:migrate --env production-ssl-disabled` to run all pending migrations"
);
process.exit(1);
}
}
export async function checkMigrations() {
if (env.DEPLOYMENT === "hosted") {
return;