我无法为我的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
非常感谢任何帮助!谢谢!
更新
答案 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
我希望它会有所帮助。