你能帮我解决这个问题:
执行时
root@myproject-dev:~/projects/myproject-dev$ rake db:migrate:status
database: myproject-db
Status Migration ID Migration Name
--------------------------------------------------
(...)
up 20151104094107 Add need to something
up 20151111082356 ********** NO FILE **********
up 20151113024714 Add approved something
up 20151116075224 Add something
up 20151130041605 Change column name
root@myproject-dev:~/projects/myproject-dev$ bundle exec rspec
RSpec is shutting down and will print the summary report... Interrupt again to force quit.
/home/xxx/.rvm/gems/ruby-2.1.2/gems/activerecord-4.1.6/lib/active_record/migration.rb:389:in `check_pending!': (ActiveRecord::PendingMigrationError)
Migrations are pending. To resolve this issue, run:
bin/rake db:migrate RAILS_ENV=test
状态显示一切正常,rake db:migrate RAILS_ENV = test已经正确执行。如果我再次执行它,我会得到错误(当然)。
为什么Rails要求我运行rake db:一次又一次地迁移RAILS_ENV = test?
答案 0 :(得分:2)
有3个以上的默认Rails环境:
每个人都应该有不同的设置,包括不同的数据库来操作。这样做是为了在不适当的环境中运行时分离环境并防止意外数据损坏/损坏。
电子。 G。在test
环境中, rake test
的每次执行都会清除数据库以防止副作用。 rspec
会自动为您设置test
个环境。
因此,在您的情况下,您应该迁移测试数据库:
RAILS_ENV=test rake db:migrate:status
RAILS_ENV=test rake db:migrate
希望它有所帮助。