ProjectTech4DevAI / ProjectTech4DevAI/kaapi-backend

Fail CI if Alembic autogenerate detects schema drift

Ouverte
#287 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

enhancement
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

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. 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

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.