fix+feat(everything): lot of things
Some checks failed
Deploy to Development / build-and-deploy (push) Failing after 20s

This commit is contained in:
EvanChal
2026-01-25 22:14:48 +01:00
parent 5bbe05000e
commit dfeaecce73
15 changed files with 871 additions and 43 deletions

137
backend/MIGRATIONS.md Normal file
View File

@@ -0,0 +1,137 @@
# Guide des Migrations Alembic
Ce projet utilise Alembic pour gérer les migrations de base de données de manière versionnée et contrôlée.
## 🚀 Démarrage rapide
### Première utilisation
Si c'est la première fois que vous utilisez Alembic sur ce projet :
```bash
# Depuis le conteneur backend
docker compose exec backend alembic revision --autogenerate -m "Initial migration"
# Appliquer la migration
docker compose exec backend alembic upgrade head
```
### Commandes courantes
```bash
# Créer une nouvelle migration (autogenerate depuis les modèles)
docker compose exec backend alembic revision --autogenerate -m "Description de la migration"
# Appliquer toutes les migrations en attente
docker compose exec backend alembic upgrade head
# Revenir en arrière d'une migration
docker compose exec backend alembic downgrade -1
# Voir la migration actuelle
docker compose exec backend alembic current
# Voir l'historique des migrations
docker compose exec backend alembic history
```
## 📋 Workflow de développement
### 1. Modifier un modèle
Éditez les fichiers dans `backend/models/` pour ajouter/modifier des colonnes, tables, etc.
### 2. Créer une migration
```bash
docker compose exec backend alembic revision --autogenerate -m "Ajout du champ X à la table Y"
```
Alembic va automatiquement détecter les changements dans vos modèles SQLAlchemy.
### 3. Vérifier la migration
Ouvrez le fichier généré dans `backend/migrations/versions/` et vérifiez que les changements sont corrects.
### 4. Appliquer la migration
```bash
docker compose exec backend alembic upgrade head
```
### 5. Tester
Vérifiez que votre application fonctionne correctement avec les nouvelles migrations.
## ⚠️ Notes importantes
- **Ne modifiez jamais manuellement** les fichiers de migration existants qui ont déjà été appliqués
- **Toujours tester** les migrations en développement avant de les appliquer en production
- **Sauvegardez votre base de données** avant d'appliquer des migrations en production
- Les migrations sont **versionnées** : chaque migration a un ID unique et un historique
## 🔄 Migration manuelle (sans autogenerate)
Si vous avez besoin de créer une migration manuelle (pour des données, des index complexes, etc.) :
```bash
docker compose exec backend alembic revision -m "Description"
```
Puis éditez le fichier généré dans `backend/migrations/versions/` pour ajouter votre logique.
## 🐛 Dépannage
### Migration en conflit
Si vous avez des conflits de migration :
```bash
# Voir l'état actuel
docker compose exec backend alembic current
# Voir l'historique
docker compose exec backend alembic history
# Revenir à une version spécifique
docker compose exec backend alembic downgrade <revision_id>
```
### Migration qui échoue
Si une migration échoue :
1. Vérifiez les logs : `docker compose logs backend`
2. Vérifiez l'état de la base : `docker compose exec backend alembic current`
3. Si nécessaire, corrigez la migration et réessayez
### Réinitialiser les migrations (⚠️ DANGEREUX)
**ATTENTION** : Cela supprime toutes les données !
```bash
# Supprimer toutes les tables
docker compose exec backend alembic downgrade base
# Recréer depuis le début
docker compose exec backend alembic upgrade head
```
## 📁 Structure des fichiers
```
backend/
├── alembic.ini # Configuration Alembic
├── migrations/
│ ├── env.py # Configuration de l'environnement
│ ├── script.py.mako # Template pour les migrations
│ ├── versions/ # Fichiers de migration (générés)
│ └── README.md # Documentation
└── models/ # Modèles SQLAlchemy
```
## 🔗 Ressources
- [Documentation Alembic](https://alembic.sqlalchemy.org/)
- [SQLAlchemy Documentation](https://docs.sqlalchemy.org/)