问:当我运行此命令bin / rake db:migrate
我得到这个错误
== 20151020021106 CreateTodoItems:迁移===============================-create_table(:todo_items)耙中止了!StandardError:发生错误,此错误和所有后续迁移被取消:
SQLite3 :: SQLException:表“ todo_items”已经存在:CREATE TABLE“ todo_items”(“ id”整数主键自动添加不为空,“ todo_list_id”整数,“内容” varchar,“ created_at”日期时间NOT NULL,“ updated_at”日期时间NOT NULL)/home/youta/rails_projects/odot/db/migrate/20151020021106_create_todo_items.rb:3:in change' -e:1:in<main>'ActiveRecord :: StatementInvalid:SQLite3 :: SQLException:表“ todo_items”已存在:CREATE TABLE“ todo_items”(“ id“整数主键自动添加非NULL,” todo_list_id“整数,”内容“ varchar,” created_at“日期时间NOT NULL,” updated_at“日期时间NOT NULL)/home/youta/rails_projects/odot/db/migrate/20151020021106_create_todo_items.rb: 3:在change' -e:1:in<main>'SQLite3 :: SQLException:表“ todo_items”已经存在/home/youta/rails_projects/odot/db/migrate/20151020021106_create_todo_items.rb:3:in change' -e:1:in<main>'任务:TOP => db:migrate(查看完整通过使用--trace运行任务进行跟踪)
为了解决这个问题,我尝试使用以下命令删除模型todo_item
耙db:rollback
轨道破坏模型todo_item
耙db:drop
耙db:setup
耙db:drop RAILS_ENV = test
耙db:setup RAILS_ENV = test
虽然当我在删除前一个模型后尝试重新制作todo_item模型时,我仍然遇到相同的错误!
我应该重置git ..如果是这样,如何将其重置为以前的工作版本:添加删除待办事项的规范
答:运行rake db:reset应该会删除并重新创建数据库。您也可以运行rake db:drop db:create db:migrate。您的模型实际上与数据库迁移没有任何关系。
PS在开发和测试中都可以,但是您需要阅读有关生产环境的迁移信息。您不希望用户通过电子邮件发送无法登录的信息,并且所有待办事项列表都消失了。