2025-03-10 10:32:27 -07:00

28 lines
784 B
TypeScript

import * as SQLite from "expo-sqlite";
import { MIGRATE_UP, MIGRATE_DOWN } from "./migrations";
export type db_mode = "development" | "staging" | "production";
export async function getDb(mode : db_mode = "production") {
return await SQLite.openDatabaseAsync(`translation_terrace_${mode}`);
}
export async function migrateDb(mode : db_mode = "production", direction: "up" | "down" = "up") {
const db = await getDb(mode);
const m = direction === "up" ? MIGRATE_UP : MIGRATE_DOWN;
for (let [migration, statements] of Object.entries(m)) {
for (let statement of statements) {
console.log(statement);
try {
const result = await db.runAsync(statement);
console.log(result);
} catch (err) {
console.error(err);
}
}
}
}