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:migrate sur 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 :

  1. Assurez-vous que votre schéma est à jour
rails db:migrate
  1. 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.

  1. 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
  1. 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.