当我运行此命令时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 ..如果是这样,我该如何将其重置为以前的工作版本
答案 0 :(得分:0)
运行rake db:setup
与运行所有迁移不同,但使用schema.rb
重建数据库,该数据库仍包含todo_items
表。
使用rake db:drop
再次删除数据库,然后运行rake db:migrate
仅使用migrate
目录中的迁移。