27 lines
821 B
TypeScript
27 lines
821 B
TypeScript
import type { SQLiteDatabase } from 'expo-sqlite';
|
|
|
|
export async function migrateDb(db: SQLiteDatabase): Promise<void> {
|
|
await db.execAsync('PRAGMA journal_mode = WAL;');
|
|
await db.execAsync(`
|
|
CREATE TABLE IF NOT EXISTS activities (
|
|
id TEXT PRIMARY KEY,
|
|
source_hash TEXT NOT NULL,
|
|
detail_json TEXT NOT NULL,
|
|
timeseries_json TEXT,
|
|
geojson TEXT,
|
|
original_path TEXT,
|
|
synced_at INTEGER,
|
|
origin TEXT NOT NULL CHECK(origin IN ('local', 'remote')),
|
|
created_at INTEGER NOT NULL DEFAULT (unixepoch())
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_activities_created_at
|
|
ON activities(created_at DESC);
|
|
|
|
CREATE TABLE IF NOT EXISTS settings (
|
|
key TEXT PRIMARY KEY,
|
|
value TEXT NOT NULL
|
|
);
|
|
`);
|
|
}
|