From 1340acc178a8eed7170bd2632e1a8fbf16bf90a0 Mon Sep 17 00:00:00 2001 From: Pihkaal Date: Thu, 4 Dec 2025 22:29:38 +0100 Subject: [PATCH] feat(docker): healthcheck --- docker-compose.yml | 11 +++++++++-- packages/database/src/migrate.ts | 11 ++++++++++- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 4eea6cf..2111d40 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -10,6 +10,11 @@ services: - postgres_data:/var/lib/postgresql/data networks: - lbf-network + healthcheck: + test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-postgres}"] + interval: 5s + timeout: 5s + retries: 5 redis: image: redis:7-alpine @@ -25,8 +30,10 @@ services: dockerfile: apps/discord-bot/Dockerfile restart: unless-stopped depends_on: - - postgres - - redis + postgres: + condition: service_healthy + redis: + condition: service_started networks: - lbf-network environment: diff --git a/packages/database/src/migrate.ts b/packages/database/src/migrate.ts index 5e69f8c..fe2679c 100644 --- a/packages/database/src/migrate.ts +++ b/packages/database/src/migrate.ts @@ -1,11 +1,20 @@ import { drizzle } from "drizzle-orm/node-postgres"; import { migrate } from "drizzle-orm/node-postgres/migrator"; import { env } from "~/env"; +import { fileURLToPath } from "node:url"; +import { dirname, join } from "node:path"; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = dirname(__filename); export async function runMigrations() { + console.log("Connecting to database..."); const db = drizzle(env.DATABASE_URL); - await migrate(db, { migrationsFolder: "./drizzle" }); + const migrationsFolder = join(__dirname, "..", "drizzle"); + console.log(`Running migrations from: ${migrationsFolder}`); + + await migrate(db, { migrationsFolder }); console.log("✅ Database migrations completed"); }