繁体   English   中英

Rails耙任务中止

[英]Rails rake tasks aborting

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

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

我继续收到此错误-无论我运行什么耙任务,以及当我尝试运行服务器时:

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

任何帮助是极大的赞赏! 谢谢!

更新

在此处输入图片说明

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

尝试rake db:migrate然后尝试再次运行服务器或控制台。

确保先运行rake db:create ,然后运行rake db:create rake db:migrate ,这应该可以工作。

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

希望对您有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM