feat(db): @mosaic/db — Drizzle schema, PG connection, migrations (#67)

Co-authored-by: Jason Woltje <jason@diversecanvas.com>
Co-committed-by: Jason Woltje <jason@diversecanvas.com>
This commit was merged in pull request #67.
This commit is contained in:
2026-03-13 02:17:18 +00:00
committed by jason.woltje
parent 573484c83e
commit 2b1723e898
13 changed files with 2451 additions and 5 deletions

View File

@@ -0,0 +1,18 @@
import { dirname, resolve } from 'node:path';
import { fileURLToPath } from 'node:url';
import { drizzle } from 'drizzle-orm/postgres-js';
import { migrate } from 'drizzle-orm/postgres-js/migrator';
import postgres from 'postgres';
import { DEFAULT_DATABASE_URL } from './defaults.js';
export async function runMigrations(url?: string): Promise<void> {
const connectionString = url ?? process.env['DATABASE_URL'] ?? DEFAULT_DATABASE_URL;
const sql = postgres(connectionString, { max: 1 });
const db = drizzle(sql);
const __dirname = dirname(fileURLToPath(import.meta.url));
try {
await migrate(db, { migrationsFolder: resolve(__dirname, '../drizzle') });
} finally {
await sql.end();
}
}