db: drizzle schema matching spec 02, initial migrations, settings service

Migration 0000 enables citext; 0001 creates all 39 tables. DB tests use a
throwaway database per file (TEST_DATABASE_URL, derived from .env in dev,
a postgres service in CI). Decision 0002: pg driver and @fastify/cookie.

Task: M1-T1
This commit is contained in:
iamdoubz committed 2026-10-17 15:04:18 -05:00
1 parent 63a03b4185
commit 15b8a20751
29 files changed
+6649 -25

No files matched your search

+19 -1
View File
@@ -1,6 +1,24 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
import { defineConfig } from 'vitest/config';
// DB integration tests use TEST_DATABASE_URL; derive it from .env for the dev postgres container.
try {
process.loadEnvFile('.env');
} catch {
// no .env (CI sets TEST_DATABASE_URL itself, or DB tests are skipped)
}
const env = process.env;
if (!env.TEST_DATABASE_URL && env.POSTGRES_PASSWORD) {
env.TEST_DATABASE_URL = `postgres://selfphoneng:${env.POSTGRES_PASSWORD}@127.0.0.1:${env.POSTGRES_PORT ?? 5433}/selfphoneng`;
}
export default defineConfig({
test: { include: ['{apps,packages}/*/{src,test}/**/*.test.{ts,tsx}'], passWithNoTests: true },
resolve: { conditions: ['source'] },
ssr: { resolve: { conditions: ['source'], externalConditions: ['source'] } },
test: {
include: ['{apps,packages}/*/{src,test}/**/*.test.{ts,tsx}'],
passWithNoTests: true,
testTimeout: 20_000,
hookTimeout: 60_000,
},
});