迁移正在等待中; 运行'bin/rake db:migrate RAILS_ENV = development'来解决此问题[无法继续]

use*_*587 22 ruby ruby-on-rails

关于Ruby on Rails迁移过程,我似乎有一个循环问题.我正在关注介绍文章,我已经达到了需要创建第一个表的地步.

我跑了以下,

[tims@web2 working_ror]# rails generate model Homepage first_name:string  last_name:string email:string message:text
  invoke  active_record
  create    db/migrate/20131119203948_create_homepages.rb
  create    app/models/homepage.rb
  invoke    test_unit
  createtest    /models/homepage_test.rb
  createtest    /fixtures/homepages.yml
Run Code Online (Sandbox Code Playgroud)

然后我继续进行迁移,

[tims@web2 working_ror]# rake db:migrate
==  CreateHomepages: migrating ================================================
-- create_table(:homepages)
   -> 0.0493s
==  CreateHomepages: migrated (0.0494s) =======================================
Run Code Online (Sandbox Code Playgroud)

但是,当我运行我的应用程序时,我看到以下消息,

Migrations are pending; run 'bin/rake db:migrate RAILS_ENV=development' to resolve this issue.
Run Code Online (Sandbox Code Playgroud)

但是,如果我运行上面的,

[tims@web2 working_ror]# rake db:migrate RAILS_ENV=development
[tims@web2 working_ror]# 
Run Code Online (Sandbox Code Playgroud)

并且消息继续......

我花了相当多的时间研究论坛 - 我最接近的就是放弃并重新构建所有内容,这些都做了以下工作.

rake db:drop rake db:create rake db:migrate

结果是一样的.

iga*_*rav 27

你需要这样做

bundle exec rake test:prepare 
Run Code Online (Sandbox Code Playgroud)

要么

bundle exec rake db:test:prepare
Run Code Online (Sandbox Code Playgroud)

然后

bundle exec rake db:migrate
Run Code Online (Sandbox Code Playgroud)

在运行规范之前

干杯

引自:为什么我要求运行'rake db:migrate RAILS_ENV = test'?


Ahm*_*Ali 7

你可以做

bundle exec rake test:prepare 
Run Code Online (Sandbox Code Playgroud)

在Rails 4.1+中,他们弃用db:test:prepare您现在可以使用:

ActiveRecord::Migration.maintain_test_schema!
Run Code Online (Sandbox Code Playgroud)

如果您需要手动完成

rake db:schema:load RAILS_ENV=test
Run Code Online (Sandbox Code Playgroud)

然后

bundle exec rake db:migrate
Run Code Online (Sandbox Code Playgroud)


小智 5

尝试在 RAILS_ROOT/config/environments/development.rb 中将以下设置设置为 false:

config.active_record.migration_error = false#:page_load