OneStart/utils/migrator.ts
2026-01-29 13:56:50 +07:00

28 lines
No EOL
966 B
TypeScript

import "dotenv/config";
import { Database } from 'bun:sqlite';
import { drizzle } from 'drizzle-orm/bun-sqlite';
import { migrate } from 'drizzle-orm/bun-sqlite/migrator';
import { Pool } from "pg";
import { drizzle as drizzlePSQL } from 'drizzle-orm/node-postgres';
import { migrate as migratePSQL } from 'drizzle-orm/node-postgres/migrator';
import dc from "../drizzle.config";
if (!process.env.DATABASE_URL) {
throw new Error("Missing DATABASE_URL in .env file");
}
if (dc.dialect === "sqlite") {
const sqlite = new Database(process.env.DATABASE_URL);
const db = drizzle(sqlite);
await migrate(db, { migrationsFolder: 'database/migrations' });
console.log("migrate complete");
} else if (dc.dialect === "postgresql") {
const pool = new Pool({
connectionString: process.env.DATABASE_URL,
});
const db = drizzlePSQL({ client: pool });
await migratePSQL(db, { migrationsFolder: 'database/migrations' });
console.log("migrate complete");
}