2017-08-16 2 views
1

Je rencontre un problème avec Rails 5.1.2 exécutant ruby 2.4.1p111 (2017-03-22 revision 58053) où chaque fois que je lance une migration, il met la base de test dans un état où les tests sont impossibles, et pour obtenir la base de données de test et le développement base de données dans un état où ils travaillent tous les deux, les commandes de migration suivantes doit être exécuté dans cet ordre:Rails 5 base de données de test désynchronisée avec développement

rails db:drop 
rails db:migrate RAILS_ENV=test 
rails db:migrate 
rails db:seed 

Répondre

0

ce problème a été causé parce que j'avais une migration création d'une table, et d'essayer de créer et index sur une colonne Je l'avais renommé, donc un index sur [null] apparaissait dans le schéma, que apparemment le développement db peut traiter, mais le db de test ne peut pas sans quelques manigances impliquées dans la façon dont le db est migré

Pour que la base de données dev et test fonctionne au point où je pourrais exécuter des tests. Finalement, j'ai retrouvé l'index sur une colonne nulle dans une table existante dans db/schema.rb il était assez simple de trouver la commande d'index dans la migration de création de table et l'effacer. Après cela, la base de données peut être remise en forme avec juste

rails db:migrate 
rails db:seed