fix: ensure database directory exists before running knex

This commit is contained in:
Zamitto 2024-09-13 10:52:48 -03:00
parent 02ca506079
commit 123812ad81
3 changed files with 12 additions and 9 deletions

View file

@ -3,11 +3,8 @@ import path from "node:path";
export const defaultDownloadsPath = app.getPath("downloads");
export const databasePath = path.join(
app.getPath("appData"),
"hydra",
"hydra.db"
);
export const databaseDirectory = path.join(app.getPath("appData"), "hydra");
export const databasePath = path.join(databaseDirectory, "hydra.db");
export const logsPath = path.join(app.getPath("appData"), "hydra", "logs");

View file

@ -4,12 +4,14 @@ import updater from "electron-updater";
import i18n from "i18next";
import path from "node:path";
import url from "node:url";
import fs from "node:fs";
import { electronApp, optimizer } from "@electron-toolkit/utils";
import { logger, PythonInstance, WindowManager } from "@main/services";
import { dataSource } from "@main/data-source";
import resources from "@locales";
import { userPreferencesRepository } from "@main/repository";
import { knexClient, migrationConfig } from "./knex-client";
import { databaseDirectory } from "./constants";
const { autoUpdater } = updater;
@ -54,6 +56,10 @@ if (process.defaultApp) {
}
const runMigrations = async () => {
if (!fs.existsSync(databaseDirectory)) {
fs.mkdirSync(databaseDirectory, { recursive: true });
}
await knexClient.migrate.list(migrationConfig).then((result) => {
logger.log(
"Migrations to run:",