From f2f80dd2f7ebd09f38dcdd3480125d088d781a13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sof=C3=ADa=20Aritz?= Date: Sun, 30 Jun 2024 18:58:08 +0200 Subject: [PATCH] auto create databse folder --- README.md | 1 + identity-api/src/database.ts | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/README.md b/README.md index cd02184..39add09 100644 --- a/README.md +++ b/README.md @@ -36,6 +36,7 @@ The recommended Node.JS version is v21.5.0, others should also work. * You may need to [enable Corepack](https://nodejs.org/api/corepack.html). 3. Run `yarn start` to start the server. * **Note:** The `asset-api` server **must** be running before this command is run. [More info](./docs/asset-implementation.md). + * You may need to create an empty folder at `$/identity-api/.database`. 4. You're ready to go! You will need to restart the server manually when you make changed (unless you use something like [Nodemon](https://www.npmjs.com/package/nodemon)). #### `asset-api` diff --git a/identity-api/src/database.ts b/identity-api/src/database.ts index a924882..c5f3872 100644 --- a/identity-api/src/database.ts +++ b/identity-api/src/database.ts @@ -20,6 +20,9 @@ import { SQLITE_PATH } from "./consts.js"; import { sqliteTable } from "drizzle-orm/sqlite-core"; import { text, integer } from "drizzle-orm/sqlite-core"; import { asc, desc, eq, sql } from "drizzle-orm"; +import { join } from "path"; +import { existsSync } from "fs"; +import { mkdir } from "fs/promises"; export type DatabaseInterface = Awaited>; @@ -32,6 +35,12 @@ export function fromDBList(input: string): Array { } export async function startDatabase() { + let dir = join(SQLITE_PATH, ".."); + if (!existsSync(dir)) { + console.warn("The database folder does not exist. It will be created.") + await mkdir(dir, { recursive: true }); + } + let sqlite = new Database(SQLITE_PATH); let database = drizzle(sqlite);