Comment nettoyer les anciens fichiers de migration Rails
Au fur et à mesure que votre application Rails grandit, votre dossier db/migrate aussi. Après des années de développement, vous pourriez avoir des centaines de fichiers de migration qui ne sont plus pertinents.
Le Problème
Les anciennes migrations peuvent causer des problèmes :
- Ralentissent
rails db:migratesur les nouvelles installations - Déroutent les nouveaux développeurs
- Peuvent référencer des modèles ou colonnes qui n’existent plus
La Solution
Rails fournit un moyen de consolider les migrations :
- Assurez-vous que votre schéma est à jour
rails db:migrate
- Vérifiez que votre schema.rb ou structure.sql est correct
Vérifiez que db/schema.rb représente fidèlement votre base de données actuelle.
- Supprimez les anciens fichiers de migration
Vous pouvez supprimer en toute sécurité les migrations qui ont été exécutées sur tous les environnements :
rm db/migrate/2020*.rb
rm db/migrate/2021*.rb
- Mettez à jour la version du schéma
Si nécessaire, mettez à jour la version du schéma dans votre schema.rb.
Bonnes Pratiques
- Ne supprimez que les migrations plus anciennes que votre plus ancienne sauvegarde de production
- Assurez-vous que tous les environnements ont exécuté les migrations
- Envisagez de créer une migration “consolidée” pour la documentation
Cela garde votre base de code propre tout en maintenant un historique clair de la base de données.