2017-07-06 2 views
2

Après la mise à niveau de Rails 3 vers Rails 4, la tâche db:schema:load échoue. J'ai fait quelques recherches et j'ai trouvé qu'après la mise à jour quand j'ai exécuté bundle exec rake db:schema:load le fichier db/schema.rb est chargé deux fois. La première fois ça va bien; puis la deuxième fois à travers échoue en raison d'un create_table force: true échoue en raison d'une contrainte de dépendance sur la table.rake db: schema: charge charge schema.rb plusieurs fois?

J'ai supprimé toutes les tâches de rake supplémentaires et les améliore pour essayer d'exclure n'importe quel code, mais cela charge deux fois le fichier schema.rb. Il est toujours exactement deux fois que je suis capable de l'exécuter avec succès sur SQLite et voir le même comportement là-bas, mais il s'exécute parce que SQLite n'applique pas les contraintes de la table.

+0

Je vois cela dans Rails 5, mais seulement dans l'environnement de développement. RAILS_ENV = le test fonctionne correctement. –

Répondre

0

Vous pouvez vérifier que votre Rakefile ne charge pas les tâches deux fois. Lorsque Rake enregistre une tâche portant le même nom qu'une tâche existante, elle exécute les deux dans l'ordre plutôt que de remplacer l'ancienne par la nouvelle.