Questo è l'errore che ottengo quando sto installando prima Devise e funzionante rake db:migrate
:Devise rake db: migrate non riesce a causa di colonna duplicata nella tabella di mio utente - Rails 3.1
== 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
Dato che questo è solo dei dati di test , Potrei semplicemente cancellare quella colonna nel mio db ed eseguirla nuovamente, ma questo non sembra molto Railsy - se non altro per il fatto che uscirà fuori dal mio server di staging (l'unico altro server con la mia app) sincronizzare con il mio localhost
.
Inoltre, cosa succede se c'è un conflitto con un'altra colonna.
Quindi, dato che questo è lo schema della mia tabella User
prima di eseguire la migrazione, come dovrei gestirlo? Con una migrazione di qualche tipo che si rinomina?
# == 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
#
No, quello che è successo è che ho avuto il mio modello 'User' con quello schema lì prima di eseguire' db: migrate'. Ho persino avuto alcuni utenti memorizzati nella tabella con le informazioni esistenti. Tuttavia, ora che sto cercando di installare Devise in un modello utente esistente, ottengo questo errore. Quindi sì, so che esiste una colonna ': email'. Voglio solo ignorarlo o modificarlo nel modo in cui deve essere modificato. – marcamillion
puoi saltarlo ma commentare la nostra linea sulla tua migrazione. Successivamente, esegui rake db: esegui di nuovo la migrazione. – Benjamin
Sì, lo stesso problema qui e tutto ciò che ho fatto è stato commentare la riga in cui la tabella di posta elettronica viene creata nella migrazione di devise come in questo modo # t.string: email,: null => false,: default => "" – mattwallace