bring back sqlite3 and migrations.
This commit is contained in:
parent
e9c04a7b39
commit
3616592896
@ -1,11 +1,26 @@
|
|||||||
import config from "@/knexfile";
|
import * as SQLite from "expo-sqlite";
|
||||||
import Knex from "knex";
|
import { MIGRATE_UP, MIGRATE_DOWN } from "./migrations";
|
||||||
|
|
||||||
export async function getDb(
|
export async function getDb() {
|
||||||
environment: "development" | "staging" | "production" = "production",
|
return await SQLite.openDatabaseAsync("translation_terrace");
|
||||||
automigrate = true
|
}
|
||||||
) {
|
|
||||||
const k = Knex(config[environment]);
|
|
||||||
if (automigrate) await k.migrate.up();
|
export async function migrateDb(direction: "up" | "down" = "up") {
|
||||||
return k;
|
|
||||||
|
const db = await getDb();
|
||||||
|
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
23
app/lib/migrations.ts
Normal file
23
app/lib/migrations.ts
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
|
||||||
|
export const MIGRATE_UP = {
|
||||||
|
1: [
|
||||||
|
`CREATE TABLE IF NOT EXISTS settings (
|
||||||
|
host_language TEXT,
|
||||||
|
libretranslate_base_url TEXT,
|
||||||
|
ui_direction INTEGER,
|
||||||
|
whisper_model TEXT
|
||||||
|
)`,
|
||||||
|
],
|
||||||
|
2: [
|
||||||
|
`CREATE TABLE IF NOT EXISTS whisper_models (
|
||||||
|
model TEXT PRIMARY KEY,
|
||||||
|
bytes_done INTEGER,
|
||||||
|
bytes_total INTEGER
|
||||||
|
)`,
|
||||||
|
],
|
||||||
|
};
|
||||||
|
|
||||||
|
export const MIGRATE_DOWN = {
|
||||||
|
1: [`DROP TABLE IF EXISTS settings`],
|
||||||
|
2: [`DROP TABLE IF EXISTS whisper_models`],
|
||||||
|
};
|
Loading…
x
Reference in New Issue
Block a user