Devise Issue with 3.0.0 & Rails 4 & Ruby 2.0 -- PG::Error: ERROR: column "email" of relation "user

155 views
Skip to first unread message

Erdal Kulgu

unread,
Jul 17, 2013, 12:50:00 PM7/17/13
to plataforma...@googlegroups.com
I am running through a tutorial so please forgive me for any stupidity. 

I am developing an application in this tutorial and I have just added the devise gem, finally got it to install 3.0.0. 

When I installed Devise, I then ran bundle and it shows it as installed in the bundle:
Using devise (3.0.0)

I then ran the following command:
rails generate devise:install

It said: 
     conflict  config/initializers/devise.r
Overwrite /Users/ekulgu/Sites/AAA_Website/config/initializers/devise.rb? (enter "h" for help) [Ynaqdh] yes
       force  config/initializers/devise.rb
   identical  config/locales/devise.en.yml
 
As you see I answered 'Yes' above.

I then went to generate:
rails generate devise User

And the output:
     invoke  active_record
Another migration is already named add_devise_to_users: /Users/ekulgu/Sites/AAA_Website/db/migrate/20130716234014_add_devise_to_users.rb. Use --force to remove the old migration file and replace it.

I ran it again and forced it.
 
Erdals-MacBook-3:AAA_Website ekulgu$ rails generate devise User --force
      invoke  active_record
      remove    db/migrate/20130716234014_add_devise_to_users.rb
      create    db/migrate/20130717162732_add_devise_to_users.rb
      insert    app/models/user.rb
       route  devise_for :users

I then ran Rake:
rake db:migrate

And the Output
  (Notice the error in Bold)
==  AddDeviseToUsers: migrating ===============================================
-- change_table(:users)
rake aborted!
An error has occurred, this and all later migrations canceled:

PG::Error: ERROR:  column "email" of relation "users" already exists
: ALTER TABLE "users" ADD COLUMN "email" character varying(255) DEFAULT '' NOT NULL/Users/ekulgu/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-4.0.0/lib/active_record/connection_adapters/postgresql/database_statements.rb:128:in `exec'
/Users/ekulgu/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-4.0.0/lib/active_record/connection_adapters/postgresql/database_statements.rb:128:in `block in execute'
/Users/ekulgu/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-4.0.0/lib/active_record/connection_adapters/abstract_adapter.rb:425:in `block in log'
/Users/ekulgu/.rvm/gems/ruby-2.0.0-p195/gems/activesupport-4.0.0/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
/Users/ekulgu/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-4.0.0/lib/active_record/connection_adapters/abstract_adapter.rb:420:in `log'
/Users/ekulgu/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-4.0.0/lib/active_record/connection_adapters/postgresql/database_statements.rb:127:in `execute'
/Users/ekulgu/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-4.0.0/lib/active_record/connection_adapters/abstract/schema_statements.rb:360:in `add_column'
/Users/ekulgu/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-4.0.0/lib/active_record/connection_adapters/postgresql/schema_statements.rb:379:in `add_column'
/Users/ekulgu/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-4.0.0/lib/active_record/connection_adapters/abstract/schema_definitions.rb:489:in `block (3 levels) in <class:Table>'
/Users/ekulgu/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-4.0.0/lib/active_record/connection_adapters/abstract/schema_definitions.rb:488:in `each'
/Users/ekulgu/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-4.0.0/lib/active_record/connection_adapters/abstract/schema_definitions.rb:488:in `block (2 levels) in <class:Table>'
/Users/ekulgu/Sites/AAA_Website/db/migrate/20130717162732_add_devise_to_users.rb:5:in `block in up'
/Users/ekulgu/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-4.0.0/lib/active_record/connection_adapters/abstract/schema_statements.rb:334:in `change_table'
/Users/ekulgu/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-4.0.0/lib/active_record/migration.rb:625:in `block in method_missing'
/Users/ekulgu/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-4.0.0/lib/active_record/migration.rb:597:in `block in say_with_time'
/Users/ekulgu/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-4.0.0/lib/active_record/migration.rb:597:in `say_with_time'
/Users/ekulgu/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-4.0.0/lib/active_record/migration.rb:617:in `method_missing'
/Users/ekulgu/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-4.0.0/lib/active_record/migration.rb:383:in `method_missing'
/Users/ekulgu/Sites/AAA_Website/db/migrate/20130717162732_add_devise_to_users.rb:3:in `up'
/Users/ekulgu/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-4.0.0/lib/active_record/migration.rb:534:in `up'
/Users/ekulgu/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-4.0.0/lib/active_record/migration.rb:574:in `exec_migration'
/Users/ekulgu/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-4.0.0/lib/active_record/migration.rb:555:in `block (2 levels) in migrate'
/Users/ekulgu/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-4.0.0/lib/active_record/migration.rb:554:in `block in migrate'
/Users/ekulgu/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-4.0.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:294:in `with_connection'
/Users/ekulgu/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-4.0.0/lib/active_record/migration.rb:553:in `migrate'
/Users/ekulgu/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-4.0.0/lib/active_record/migration.rb:709:in `migrate'
/Users/ekulgu/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-4.0.0/lib/active_record/migration.rb:959:in `block in execute_migration_in_transaction'
/Users/ekulgu/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-4.0.0/lib/active_record/migration.rb:1005:in `block in ddl_transaction'
/Users/ekulgu/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-4.0.0/lib/active_record/connection_adapters/abstract/database_statements.rb:202:in `block in transaction'
/Users/ekulgu/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-4.0.0/lib/active_record/connection_adapters/abstract/database_statements.rb:210:in `within_new_transaction'
/Users/ekulgu/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-4.0.0/lib/active_record/connection_adapters/abstract/database_statements.rb:202:in `transaction'
/Users/ekulgu/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-4.0.0/lib/active_record/transactions.rb:209:in `transaction'
/Users/ekulgu/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-4.0.0/lib/active_record/migration.rb:1005:in `ddl_transaction'
/Users/ekulgu/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-4.0.0/lib/active_record/migration.rb:958:in `execute_migration_in_transaction'
/Users/ekulgu/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-4.0.0/lib/active_record/migration.rb:920:in `block in migrate'
/Users/ekulgu/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-4.0.0/lib/active_record/migration.rb:916:in `each'
/Users/ekulgu/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-4.0.0/lib/active_record/migration.rb:916:in `migrate'
/Users/ekulgu/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-4.0.0/lib/active_record/migration.rb:764:in `up'
/Users/ekulgu/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-4.0.0/lib/active_record/migration.rb:742:in `migrate'
/Users/ekulgu/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-4.0.0/lib/active_record/railties/databases.rake:42:in `block (2 levels) in <top (required)>'
/Users/ekulgu/.rvm/gems/ruby-2.0.0-p195/bin/ruby_noexec_wrapper:14:in `eval'
/Users/ekulgu/.rvm/gems/ruby-2.0.0-p195/bin/ruby_noexec_wrapper:14:in `<main>'
Tasks: TOP => db:migrate
(See full trace by running task with --trace)


I have done a lot of searching on this issue, but cannot find a solution to fix, "PG::Error: ERROR:  column "email" of relation "users" already exists"
 

Anyone have any ideas?


Thank You!

Hassan Shahid

unread,
Jul 17, 2013, 1:08:45 PM7/17/13
to plataforma...@googlegroups.com
The migration assumes that you don't have a column called "email' on your users table already, this error is telling you that you do in fact have an "email" column already on your users table.  You should go through the migration file that Devise generated and see what you need added, and what you don't need added, and comment out lines accordingly. 



--
 
---
You received this message because you are subscribed to the Google Groups "Devise" group.
To unsubscribe from this group and stop receiving emails from it, send an email to plataformatec-de...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

Walter Lee Davis

unread,
Jul 17, 2013, 1:16:59 PM7/17/13
to plataforma...@googlegroups.com

On Jul 17, 2013, at 1:08 PM, Hassan Shahid wrote:

> The migration assumes that you don't have a column called "email' on your users table already, this error is telling you that you do in fact have an "email" column already on your users table. You should go through the migration file that Devise generated and see what you need added, and what you don't need added, and comment out lines accordingly.
>

There's a page or a section of a page on the Devise Wiki that deals with adding Devise to an existing User model. Have a look there.

Walter

Hassan Shahid

unread,
Jul 17, 2013, 1:21:08 PM7/17/13
to plataforma...@googlegroups.com
Reply all
Reply to author
Forward
0 new messages