From 535a59f09213200cf946c1b10cb39cefcc9420f3 Mon Sep 17 00:00:00 2001 From: Suphonchai Phoonsawat Date: Sun, 13 Sep 2026 20:49:24 +0700 Subject: [PATCH] fix: update MinIO container to use quay.io mirror and add EF migrations on startup --- .../IntegrationTestFixture.cs | 3 ++- backend/WordVersioning.Api/Program.cs | 8 ++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/backend/WordVersioning.Api.IntegrationTests/IntegrationTestFixture.cs b/backend/WordVersioning.Api.IntegrationTests/IntegrationTestFixture.cs index 194f051..160479e 100644 --- a/backend/WordVersioning.Api.IntegrationTests/IntegrationTestFixture.cs +++ b/backend/WordVersioning.Api.IntegrationTests/IntegrationTestFixture.cs @@ -46,7 +46,8 @@ public sealed class IntegrationTestFixture : IAsyncLifetime private readonly PostgreSqlContainer _postgres = new PostgreSqlBuilder("postgres:16") // ให้ตรงกับ docker-compose ของ dev .Build(); - private readonly MinioContainer _minio = new MinioBuilder("minio/minio:latest") + // quay.io mirror — Docker Hub ทำ minio/minio เป็น private แล้ว (เดียวกับ docker-compose) + private readonly MinioContainer _minio = new MinioBuilder("quay.io/minio/minio:latest") .WithUsername(MinioUser) .WithPassword(MinioPassword) .Build(); diff --git a/backend/WordVersioning.Api/Program.cs b/backend/WordVersioning.Api/Program.cs index 53d8969..9c3acab 100644 --- a/backend/WordVersioning.Api/Program.cs +++ b/backend/WordVersioning.Api/Program.cs @@ -108,6 +108,14 @@ if (devHttpsEnabled) var app = builder.Build(); +// สร้าง/อัปเดต schema ด้วย EF migrations ทุกครั้งที่สตาร์ท (idempotent — apply เฉพาะ migration ที่ยังค้าง) +// DB ไม่พร้อม = ให้ตายตรงนี้เลย ดีกว่าขึ้นมาแล้วเงียบๆ แล้ว 500 ทุก request +await using (var scope = app.Services.CreateAsyncScope()) +{ + var db = scope.ServiceProvider.GetRequiredService(); + await db.Database.MigrateAsync(); +} + // FR-16 — ไฟล์ร่างอยู่ใต้ prefix `drafts/` ของ bucket versions: ตั้ง lifecycle ให้หมดอายุเอง (idempotent) // best-effort — MinIO ยังไม่พร้อมตอนสตาร์ทก็แค่ log เตือน ไม่บล็อก (ไฟล์ร่างจะค้างนานขึ้นเท่านั้น) try