1
votes

when I run this command bin/rake db:migrate

I get this error

== 20151020021106 CreateTodoItems: migrating ================================== -- create_table(:todo_items) rake aborted! StandardError: An error has occurred, this and all later migrations canceled:

SQLite3::SQLException: table "todo_items" already exists: 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 change' -e:1:in' ActiveRecord::StatementInvalid: SQLite3::SQLException: table "todo_items" already exists: 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 change' -e:1:in' SQLite3::SQLException: table "todo_items" already exists /home/youta/rails_projects/odot/db/migrate/20151020021106_create_todo_items.rb:3:in change' -e:1:in' Tasks: TOP => db:migrate (See full trace by running task with --trace)

To solve it, I tried to remove the model todo_item by using these commands

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

Although when I tried to remake the todo_item model after removing the previous one I still get the same error!

should I reset git .. if so, how can I reset it to the previous working version

1

1 Answers

0
votes

Running rake db:setup is not the same as running all migrations, but uses your schema.rb to rebuild the database, which still includes the todo_items table.

Drop the database again with rake db:drop, and run rake db:migrate to only use the migrations in your migrate directory.