Scratch space for learning atproto app development
1import SqliteDb from 'better-sqlite3'
2import { Kysely, Migrator, SqliteDialect } from 'kysely'
3import { migrationProvider } from './migrations'
4import type { DatabaseSchema } from './schema'
5
6export const createDb = (location: string): Database => {
7 return new Kysely<DatabaseSchema>({
8 dialect: new SqliteDialect({
9 database: new SqliteDb(location),
10 }),
11 })
12}
13
14export const migrateToLatest = async (db: Database) => {
15 const migrator = new Migrator({ db, provider: migrationProvider })
16 const { error } = await migrator.migrateToLatest()
17 if (error) throw error
18}
19
20export type Database = Kysely<DatabaseSchema>