auto create databse folder

This commit is contained in:
Sofía Aritz 2024-06-30 18:58:08 +02:00
parent b3dec297df
commit f2f80dd2f7
Signed by: sofia
GPG key ID: 90B5116E3542B28F
2 changed files with 10 additions and 0 deletions

View file

@ -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`

View file

@ -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<ReturnType<typeof startDatabase>>;
@ -32,6 +35,12 @@ export function fromDBList<T>(input: string): Array<T> {
}
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);