This is the error I get when I am first installing Devise and running rake db:migrate:
== AddDeviseToUsers: migrating ===============================================
-- change_table(:users)
rake aborted!
An error has occurred, this and all later migrations canceled:
SQLite3::SQLException: duplicate column name: email: ALTER TABLE "users" ADD "email" varchar(255) DEFAULT '' NOT NULL
Given that this is just test data, I could just delete that column in my db and re-run it, but that doesn’t seem very Railsy – if only for the reason that it will making my staging server (the only other server with my app) out-of-sync with my localhost.
Also, what if there is a conflict with another column.
So given that this is the schema of my User table before running the migration, how should I handle this? With a migration of some sort that does a rename?
# == Schema Information
#
# Table name: users
#
# id :integer not null, primary key
# email :string(255)
# f_name :string(255)
# l_name :string(255)
# username :string(255)
# role_id :integer
# picture :string(255)
# about_me :string(255)
# website :string(255)
# created_at :datetime
# updated_at :datetime
#
Try
rake db:rollbackand then try again. When you did it the first time it added the id column. and why are you addingid :integer not null, primary keyit’s automatic in rails. It should look like this:You can get more information here http://guides.rubyonrails.org/migrations.html