28 lines
No EOL
966 B
TypeScript
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");
|
|
} |