Production 환경에서 실행시 DB 마이그레이션을 자동으로 수행하도록 구현

This commit is contained in:
static
2024-12-30 11:43:36 +09:00
parent e22969b807
commit ee596ebb44
9 changed files with 593 additions and 13 deletions

View File

@@ -1,9 +1,12 @@
import { redirect, type ServerInit, type Handle } from "@sveltejs/kit";
import schedule from "node-schedule";
import { cleanupExpiredUserClientChallenges } from "$lib/server/db/client";
import { migrateDB } from "$lib/server/db/drizzle";
import { cleanupExpiredRefreshTokens } from "$lib/server/db/token";
export const init: ServerInit = () => {
migrateDB();
schedule.scheduleJob("0 * * * *", () => {
cleanupExpiredUserClientChallenges();
cleanupExpiredRefreshTokens();

View File

@@ -1,7 +1,16 @@
import Database from "better-sqlite3";
import { drizzle } from "drizzle-orm/better-sqlite3";
import { migrate } from "drizzle-orm/better-sqlite3/migrator";
import env from "$lib/server/loadenv";
const client = new Database(env.databaseUrl);
const db = drizzle(client);
export default drizzle(client);
export const migrateDB = () => {
if (process.env.NODE_ENV === "production") {
console.log("test");
migrate(db, { migrationsFolder: "./drizzle" });
}
};
export default db;