diff options
| author | Lucas Faria Mendes <lucas.fariamo08@gmail.com> | 2026-08-16 23:17:42 +0000 |
|---|---|---|
| committer | Lucas Faria Mendes <lucas.fariamo08@gmail.com> | 2026-08-16 23:17:42 +0000 |
| commit | 375482e654a01615683867e732ac9e458c7cbe74 (patch) | |
| tree | 12d1b31b8deb6bf8590bcdbc2cfb52dcc553e006 /api/src/db/client.ts | |
| parent | 2c2dfba45357bbd205a59145ae55a2779c911ae0 (diff) | |
| download | yaba-master.tar.gz yaba-master.zip | |
Signed-off-by: Lucas Faria Mendes <lucas.fariamo08@gmail.com>
Diffstat (limited to 'api/src/db/client.ts')
| -rw-r--r-- | api/src/db/client.ts | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/api/src/db/client.ts b/api/src/db/client.ts new file mode 100644 index 0000000..5e9673f --- /dev/null +++ b/api/src/db/client.ts @@ -0,0 +1,23 @@ +import { Database } from 'bun:sqlite'; +import { drizzle } from 'drizzle-orm/bun-sqlite'; +import * as schema from './schema'; + +/** + * Instância única do banco de dados SQLite via Drizzle ORM. + * Utiliza o driver nativo do Bun para máxima performance. + * + * O caminho do arquivo pode ser configurado via variável de ambiente DATABASE_URL. + * Quando não definida, usa 'yaba.db' na raiz do projeto. + */ +const sqlite = new Database(process.env.DATABASE_URL ?? 'yaba.db'); + +/** + * Habilita WAL mode para melhor performance em leituras concorrentes. + * @see https://www.sqlite.org/wal.html + */ +sqlite.exec('PRAGMA journal_mode = WAL;'); +sqlite.exec('PRAGMA foreign_keys = ON;'); + +export const db = drizzle(sqlite, { schema }); + +export type DB = typeof db; |