ProjectTech4DevAI / ProjectTech4DevAI/kaapi-backend
Fail CI if Alembic autogenerate detects schema drift
Personne n'a encore pris cette issue.
- Langage dominant
- Python
- Étoiles
- 18
- Forks
- 10
- Merge moyen
- 2 j 20 h
- PR mergées (30 j)
- 14
Description
Description
At present, we don’t have an automated way to ensure that our SQLModel data models and the database schema are in sync. The only way to check is manually, typically by running the alembic revision command. However, this step can easily be overlooked by someone pushing code, which can lead to inconsistencies accumulating over time. To automate this verification, we should add a CI step that runs:
alembic revision --autogenerate -m "ci check"
and then verifies that the generated migration file is empty (i.e., it contains no upgrade()/downgrade() operations).
If alembic generates non-empty changes, the CI job should fail, signalling a mismatch between the current database schema and our models.
Acceptance Criteria
-
Add a step in GitHub Actions workflow to run alembic revision --autogenerate against the test database.
-
Fail the job if the generated migration contains actual schema changes.
-
Clean up the generated revision file after the check.
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Repérez le workflow GitHub Actions et la configuration existante de la base de données de test, puis examinez la configuration Alembic utilisée par le projet. Exécutez la commande autogenerate indiquée sur cette base de données et déterminez comment détecter les opérations upgrade()/downgrade() non vides. La tâche est terminée lorsque le workflow échoue en cas de dérive du schéma et supprime ensuite la révision générée.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- github-actions, python
- Domaine
- ci-cd, database
- Type d'issue
- Fonctionnalité
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 52/100