[英]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.