Rails rake任务中止

时间:2015-12-17 00:07:51

标签: ruby-on-rails ruby ruby-on-rails-4 sqlite

我无法为我的Rails应用程序运行任何rake任务,无论我运行什么任务(rake db:migrate,rake db:reset等),我都会收到以下错误:

rake aborted!
ActiveRecord::StatementInvalid: SQLite3::SQLException: no such table: pages: SELECT "pages".* FROM "pages"

我继续收到此错误 - 无论我运行的rake任务是什么,还是当我尝试运行服务器时:

rails s

收到以下错误

Exiting
/Users/terencedevine/.rvm/gems/ruby-2.1.2/gems/sqlite3-1.3.11/lib/sqlite3/database.rb:91:in `initialize': SQLite3::SQLException: no such table: pages: SELECT "pages".* FROM "pages" (ActiveRecord::StatementInvalid)

我在网上找到的所有内容都建议使用rake db:reset,但会返回相同的错误。

我最近进行的一次迁移是XXXX_create_pages.rb,其中包含以下代码:

class CreatePages < ActiveRecord::Migration
  def change
    create_table :pages do |t|
      t.string :name, null: false, unique: true
      t.string :title, null: false
      t.text :body

      t.timestamps null: false
    end
  end
end

非常感谢任何帮助!谢谢!

更新

enter image description here

3 个答案:

答案 0 :(得分:0)

您需要确保实际执行迁移。

尝试<div> <div class="row"> <div class="col-xs-24"> <div style="background-image: url('young.png'); min-height:200px;"></div> </div> </div> <div class="row" style="border: 1px solid #000"> <div class="col-xs-24"> <div class=""> The entire paragraph text is here. </div> </div> </div> </div> 然后尝试再次运行服务器或控制台。

答案 1 :(得分:0)

确保运行rake db:create然后rake db:migrate,这应该有效。

答案 2 :(得分:0)

ActiveRecord::StatementInvalid: SQLite3::SQLException: no such table: pages: SELECT "pages".* FROM "pages"

从错误消息中可以看出,您的数据库中现在不存在pages表。即使你没有故意删除它,它也会以某种方式被删除。

因此,您应该通过运行相应的迁移来再次创建pages表:

rake db:migrate

如果您的架构版本超出迁移XXXX_create_pages.rb,请将迁移重命名为最大时间戳。

例如

您的网页迁移

20151130203912_create_pages.rb

如果您当前的架构版本是

ActiveRecord::Schema.define(:version => 20151211175046)

然后pages迁移必须为20151230203912_create_pages.rb

我希望它会有所帮助。