All checks were successful
Docker Deploy / build-and-push (push) Successful in 4m11s
45 lines
990 B
JavaScript
45 lines
990 B
JavaScript
import { drizzle } from "drizzle-orm/libsql";
|
|
import { migrate } from "drizzle-orm/libsql/migrator";
|
|
import { createClient } from "@libsql/client";
|
|
import path from "path";
|
|
import fs from "fs";
|
|
import * as dotenv from "dotenv";
|
|
|
|
dotenv.config();
|
|
|
|
async function runMigrate() {
|
|
console.log("Running migrations...");
|
|
|
|
const dataDir = process.env.DATA_DIR;
|
|
|
|
if (!dataDir) {
|
|
throw new Error("DATA_DIR environment variable is not set");
|
|
}
|
|
|
|
if (!fs.existsSync(dataDir)) {
|
|
fs.mkdirSync(dataDir, { recursive: true });
|
|
}
|
|
|
|
const url = `file:${path.join(dataDir, "chronus.db")}`;
|
|
console.log(`Using database: ${url}`);
|
|
|
|
const client = createClient({
|
|
url,
|
|
authToken,
|
|
});
|
|
|
|
const db = drizzle(client);
|
|
|
|
try {
|
|
await migrate(db, { migrationsFolder: "./drizzle" });
|
|
console.log("Migrations completed successfully");
|
|
} catch (error) {
|
|
console.error("Migration failed:", error);
|
|
process.exit(1);
|
|
} finally {
|
|
client.close();
|
|
}
|
|
}
|
|
|
|
runMigrate();
|