fix(ops): narrow DB_BACKUP_DIR for jobs-worker typecheck
Co-authored-by: Cursor <[email protected]>
This commit is contained in:
1 parent
725e1cb338
commit
db957d7fb1
1 file changed
+8
-6
@@ -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();
|
||||
|
||||
Reference in new issue
Block a user