fix(ops): narrow DB_BACKUP_DIR for jobs-worker typecheck
CI / check (push) Failing after 9s
CI / release (push) Skipped
CI / deploy (push) Skipped

Co-authored-by: Cursor <[email protected]>
This commit is contained in:
SimoandCursor committed 2026-08-01 15:27:01 +02:00
1 parent 725e1cb338
commit db957d7fb1
1 file changed
+8 -6
+8 -6
View File
@@ -140,7 +140,8 @@ async function backupEmulatorJar(): Promise<void> {
/** Optional mysqldump when DB_BACKUP_DIR is set (host must have mysqldump on PATH). */
async function backupDatabase(): Promise<void> {
if (!env.DB_BACKUP_DIR || !env.DATABASE_URL) return;
const backupDir = env.DB_BACKUP_DIR;
if (!backupDir || !env.DATABASE_URL) return;
const { mkdirSync, readdirSync, unlinkSync, existsSync, createWriteStream } =
await import("node:fs");
@@ -155,14 +156,14 @@ async function backupDatabase(): Promise<void> {
return;
}
if (!existsSync(env.DB_BACKUP_DIR)) {
mkdirSync(env.DB_BACKUP_DIR, { recursive: true });
if (!existsSync(backupDir)) {
mkdirSync(backupDir, { recursive: true });
}
const timestamp = new Date().toISOString().slice(0, 19).replace(/[T:]/g, "-");
const dbName =
decodeURIComponent(parsed.pathname.replace(/^\//, "")) || "cms";
const outFile = resolve(env.DB_BACKUP_DIR, `db-${dbName}-${timestamp}.sql`);
const outFile = resolve(backupDir, `db-${dbName}-${timestamp}.sql`);
const args = [
`-h${parsed.hostname}`,
@@ -201,12 +202,13 @@ async function backupDatabase(): Promise<void> {
} else {
logger.info("Backed up database", { module: "jobs", outFile });
const keep = env.DB_BACKUP_KEEP ?? 7;
const files = readdirSync(env.DB_BACKUP_DIR)
const files = readdirSync(backupDir)
.filter((f) => f.startsWith("db-") && f.endsWith(".sql"))
.sort()
.reverse();
for (let i = keep; i < files.length; i++) {
unlinkSync(resolve(env.DB_BACKUP_DIR, files[i]));
const file = files[i];
if (file) unlinkSync(resolve(backupDir, file));
}
}
resolvePromise();