我遇到Rails 5.1.2
运行ruby 2.4.1p111 (2017-03-22 revision 58053)
的问题,每次运行迁移时,它都会将测试数据库置于运行测试的状态,并且无法获取测试数据库和开发数据库进入它们都工作的状态,必须按以下顺序运行以下迁移命令:
rails db:drop
rails db:migrate RAILS_ENV=test
rails db:migrate
rails db:seed
答案 0 :(得分:0)
这个问题是因为我有一个迁移创建一个表,并尝试在我重命名的列上创建和索引,因此[null]上的索引出现在模式中,显然开发数据库可以处理,但测试数据库不能没有涉及迁移数据库的一些恶作剧
为了让dev和测试DB工作到我可以运行测试的程度。最后,我在db/schema.rb
中的现有表中的空列上追踪索引,在表创建迁移中找到索引命令并将其擦除是一件相当简单的事情。之后,只需
rails db:migrate
rails db:seed