eletrotupi / tcc/ api/src/setup-db.jsce4428d10755d440e85a3835ba41b59d2b6389d9
1.0 KB | 38 lines Raw
1
import Database from 'better-sqlite3';
2
import fs from 'fs';
3
import path from 'path';
4
import { fileURLToPath } from 'url';
5

6
const __filename = fileURLToPath(import.meta.url);
7
const __dirname = path.dirname(__filename);
8

9
export function setupDatabase(dbPath = 'orbit.db') {
10
  const db = new Database(dbPath);
11

12
  // Read and execute migrations
13
  const migrationsDir = path.join(__dirname, '..', 'migrations');
14
  const migrationFile = path.join(migrationsDir, '001_initial_schema.sql');
15

16
  if (fs.existsSync(migrationFile)) {
17
    const migration = fs.readFileSync(migrationFile, 'utf8');
18
    db.exec(migration);
19
  }
20

21
  return db;
22
}
23

24
export function setupTestDatabase() {
25
  // Use in-memory database for tests
26
  const db = new Database(':memory:');
27

28
  // Read and execute migrations
29
  const migrationsDir = path.join(__dirname, '..', 'migrations');
30
  const migrationFile = path.join(migrationsDir, '001_initial_schema.sql');
31

32
  if (fs.existsSync(migrationFile)) {
33
    const migration = fs.readFileSync(migrationFile, 'utf8');
34
    db.exec(migration);
35
  }
36

37
  return db;
38
}