mirror of
https://github.com/SrIzan10/helium.git
synced 2026-06-06 00:56:58 +00:00
chore: (ai gen) run migrations on startup
This commit is contained in:
19
app/lib/db/migrate.ts
Normal file
19
app/lib/db/migrate.ts
Normal file
@@ -0,0 +1,19 @@
|
||||
import { migrate } from "drizzle-orm/neon-http/migrator";
|
||||
import { drizzle } from "drizzle-orm/neon-http";
|
||||
import * as schema from "./schema";
|
||||
|
||||
export async function runMigrations() {
|
||||
if (!process.env.DATABASE_URL) {
|
||||
throw new Error("DATABASE_URL environment variable is not set");
|
||||
}
|
||||
|
||||
try {
|
||||
const db = drizzle(process.env.DATABASE_URL, { schema });
|
||||
console.log("[DB] Running migrations...");
|
||||
await migrate(db, { migrationsFolder: "./drizzle" });
|
||||
console.log("[DB] Migrations completed successfully");
|
||||
} catch (error) {
|
||||
console.error("[DB] Migration failed:", error);
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
15
server/plugins/migrations.ts
Normal file
15
server/plugins/migrations.ts
Normal file
@@ -0,0 +1,15 @@
|
||||
import { runMigrations } from "../../app/lib/db/migrate";
|
||||
|
||||
export default defineNitroPlugin(async () => {
|
||||
// Run migrations once when the server starts
|
||||
try {
|
||||
await runMigrations();
|
||||
} catch (error) {
|
||||
console.error("[Server] Failed to run migrations on startup:", error);
|
||||
// In production, you may want to throw here to prevent server startup
|
||||
// For now, we'll just log the error and continue
|
||||
if (process.env.NODE_ENV === "production") {
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user