rake db:migrate不起作用(Rails 4.0.4)

时间:2014-03-22 19:54:42

标签: ruby-on-rails ruby-on-rails-4 rake rails-migrations

我在Rails 4.0.4 / Ruby 2.1.0上有一个新的应用程序。我做的第一件事就是添加Devise gem。当我想运行rake db:migrate时,它什么都不做。没有错误,但是没有执行迁移。

你能帮我解决一下这个案子怎么办?我找不到问题所在。

谢谢! 彼得

3 个答案:

答案 0 :(得分:10)

好的,问题是Devise生成器生成的“.txt”文件带有迁移而不是“.rb”文件。奇怪,但改变扩展解决了它。

答案 1 :(得分:7)

我和Petr有同样的问题,我想我发现了原因。出于某种原因,当我运行'rails g devise User'时,它创建了一个迁移(db / migrate / [timestamp] _devise_create_users.rb)。这就是它的假设,但经过进一步检查,迁移最终错过了'.rb'。所以它看起来像(db / migrate / [timestamp] _devise_create_users)。当我在最后添加.rb并运行'rake db:migrate'时,它就像一个魅力。我不知道为什么rails最后没有附上'.rb'。希望有所帮助。

答案 2 :(得分:-1)

安装devise gem后,您必须执行以下操作

  1. rails generate devise:install
  2. 生成器将安装一个描述所有Devise配置选项的初始化程序,你必须看看它。完成后,您就可以使用生成器

    将Devise添加到任何模型中
    1. rails generate devise <model>
    2. 这是生成迁移的步骤。例如,如果要将设计添加到用户模型,则应该执行

      rails generate devise User
      

      因此,它将生成一个迁移,以便将与设备相关的列添加到用户表