2026-02-16 19:07:37 -06:00
|
|
|
import { migrate as migratePg } from "drizzle-orm/postgres-js/migrator";
|
|
|
|
|
import { migrate as migratePglite } from "drizzle-orm/pglite/migrator";
|
2026-02-16 13:31:52 -06:00
|
|
|
import postgres from "postgres";
|
2026-02-16 19:07:37 -06:00
|
|
|
import { PGlite } from "@electric-sql/pglite";
|
|
|
|
|
import { drizzle as drizzlePg } from "drizzle-orm/postgres-js";
|
|
|
|
|
import { drizzle as drizzlePglite } from "drizzle-orm/pglite";
|
2026-02-16 13:31:52 -06:00
|
|
|
|
2026-02-16 19:07:37 -06:00
|
|
|
const migrationsFolder = new URL("./migrations", import.meta.url).pathname;
|
2026-02-16 13:31:52 -06:00
|
|
|
const url = process.env.DATABASE_URL;
|
|
|
|
|
|
2026-02-16 19:07:37 -06:00
|
|
|
if (url) {
|
|
|
|
|
const sql = postgres(url, { max: 1 });
|
|
|
|
|
const db = drizzlePg(sql);
|
|
|
|
|
await migratePg(db, { migrationsFolder });
|
|
|
|
|
await sql.end();
|
|
|
|
|
} else {
|
|
|
|
|
const client = new PGlite("./data/pglite");
|
|
|
|
|
const db = drizzlePglite({ client });
|
|
|
|
|
await migratePglite(db, { migrationsFolder });
|
|
|
|
|
await client.close();
|
|
|
|
|
}
|
2026-02-16 13:31:52 -06:00
|
|
|
|
|
|
|
|
console.log("Migrations complete");
|