[Blocker] Move EF Core migrations out of application startup
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 45/100
Línea de trabajo
Comienza con LearnStack/Program.cs:57-70 y sigue el flujo de inicio actual de Database.MigrateAsync(). Revisa cómo el pipeline de deployment puede ejecutar dotnet ef migrations bundle --self-contained antes del swap y cómo el endpoint de health debería informar sobre la conectividad o las migraciones pendientes. Se considera terminado cuando el inicio no realiza cambios de esquema, el deployment aplica las migraciones de forma observable y los fallos bloquean el swap en lugar de hacer que la aplicación se bloquee.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Tier 1 — release blocker
Problem
Database.MigrateAsync() runs on every boot inside Program.cs and rethrows on failure, so a bad migration or a cold/throttled SQL connection takes the whole site down at startup. With more than one instance, migrations race against each other. This has already caused an Azure startup failure (commit 06b8f0a, "fix: add missing user display name migration").
Evidence
LearnStack/Program.cs:57-70
Proposed fix
- Generate a migration bundle in CI:
dotnet ef migrations bundle --self-contained. - Run the bundle as a deployment step against the target database, before the app is swapped in.
- Keep startup read-only — at most a
CanConnectAsynccheck wired into the health endpoint. - Optionally guard with a pending-migration check that fails the health probe rather than the process.
Acceptance criteria
- App startup performs no schema changes
- Deploy pipeline applies migrations as an explicit, observable step
- A failed migration blocks the swap instead of crashing production
- Lenguaje dominante
- HTML
- Estrellas
- 10
- Forks
- 0
- Merge medio
- 2 h 35 min
- PR fusionados (30 d)
- 21
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de kasuken/LearnStack
-
enhancement
Dificultad 1/5 Menos de una hora Aptitud para principiantes 91/100
kasuken/LearnStack#59 ·
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
kasuken/LearnStack#72 ·
Los mantenedores suelen responder en 1 día
-
Feature: admin dashboardAbiertoenhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 30/100
kasuken/LearnStack#71 ·
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
kasuken/LearnStack#70 ·
Los mantenedores suelen responder en 1 día
-
Feature: public profile pagesAbiertoenhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 45/100
kasuken/LearnStack#69 ·
Los mantenedores suelen responder en 1 día
Todos los issues de kasuken/LearnStack
Issues similares
-
Python: Bug: split_plaintext_paragraph / split_markdown_paragraph can return a chunk larger than max_tokensPosiblemente ocupada @xThreeh la tomó hoy. Abiertopython triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
microsoft/semantic-kernel#14566 ·
Los mantenedores suelen responder en 4 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
java-native-access/jna#1740 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
-
Variables passed to Compensated are not set on the routing slipQuizá libre de nuevo Un pull request para esta issue se cerró sin fusionarse. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
MassTransit/MassTransit#6249 ·
-
bug code cleaning
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
furrer-lab/abn#272 ·