bin / rake db中的错误:migrate

时间:2015-10-20 13:11:05

标签: ruby-on-rails

当我运行此命令时bin / rake db:migrate

我收到此错误

  

== 20151020021106 CreateTodoItems:迁移================================== - create_table(:todo_items)耙子流产了! StandardError:发生错误,此以及所有后续迁移都已取消:

     

SQLite3 :: SQLException:表“todo_items”已经存在:CREATE TABLE“todo_items”(“id”INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,“todo_list_id”integer,“content”varchar,“created_at”datetime NOT NULL,“updated_at “datetime NOT NULL”/home/youta/rails_projects/odot/db/migrate/20151020021106_create_todo_items.rb:3:in'''e:1:in'ActiveRecord :: StatementInvalid:SQLite3 :: SQLException:table“todo_items”已经存在:CREATE TABLE“todo_items”(“id”INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,“todo_list_id”整数,“content”varchar,“created_at”datetime NOT NULL,“updated_at”datetime NOT NULL)/ home / youta / rails_projects / odot / db / migrate / 20151020021106_create_todo_items.rb:3:在更改'-e:1:in'SQLite3 :: SQLException:table“todo_items”已经存在/home/youta/rails_projects/odot/db/migrate/20151020021106_create_todo_items.rb:3:改变'-e:1:''任务:TOP => db:migrate(通过使用--trace运行任务来查看完整跟踪)

为了解决这个问题,我尝试使用这些命令删除模型todo_item

rake db:rollback

rails destroy model todo_item

rake db:drop

rake db:setup

rake db:drop RAILS_ENV = test

rake db:setup RAILS_ENV = test

虽然当我在删除前一个模型后尝试重新制作todo_item模型时,我仍然会遇到同样的错误!

我应该重置git ..如果是这样,我该如何将其重置为以前的工作版本

1 个答案:

答案 0 :(得分:0)

运行rake db:setup与运行所有迁移不同,但使用schema.rb重建数据库,该数据库仍包含todo_items表。

使用rake db:drop再次删除数据库,然后运行rake db:migrate仅使用migrate目录中的迁移。