2013-08-30 5 views
0

essayer d'ajouter un champ NOM à mon simple_form dans des railsObtenir rake db: migrate erreur

ont ajouté des rails de $ génèrent la migration Nom de AddNameToUsers: string

qui a été ajouté au fichier USER.DB & à mon dossier Migrate

class AddNameToUsers < ActiveRecord::Migration 
    def change 
    add_column :users, :name, :string 
    end 
end 

mais quand je cours rake db:migrate i obtenir les erreurs suivantes (également couru exec bundle ...)

râteau abandonné! Une erreur est survenue, cela et toutes les migrations annulées par la suite:

SQLite3::SQLException: duplicate column name: email: ALTER TABLE "users" ADD "email" varchar(255) DEFAULT '' NOT NULL/usr/local/rvm/gems/ruby-1.9.3-p392/gems/sqlite3-1.3.8/lib/sqlite3/database.rb:91:in `initialize' /usr/local/rvm/gems/ruby-1.9.3-p392/gems/sqlite3-1.3.8/lib/sqlite3/database.rb:91:in `new' /usr/local/rvm/gems/ruby-1.9.3-p392/gems/sqlite3-1.3.8/lib/sqlite3/database.rb:91:in `prepare' /usr/local/rvm/gems/ruby-1.9.3-p392/gems/sqlite3-1.3.8/lib/sqlite3/database.rb:134:in `execute' 

des idées?

+0

L'erreur est juste dans la première ligne, il dit 'nom de colonne en double: email: ALTER TABLE" utilisateurs "ADD" email "' donc quelque part dans votre migration vous avez déjà une colonne appelée email. Cela doit être résolu avant de pouvoir exécuter votre db: migrate. Chaque fois que vous lancez la commande 'db: migrate', il migre toute votre base de données et découvre que vous avez un champ existant appelé email. Pouvez-vous vérifier si vous avez ceci. Et si vous avez cela, vous devez l'enlever. Parce qu'une autre migration essaie d'ajouter le nom de la colonne 'email' – David

+0

Merci pour la connexion - pour être honnête @david pas trop sûr où chercher. J'ai 3 fichiers dans mon fichier migrate devise_create_users.rb & add_devise_to_users.rb & add_name_to_name_to_users.rb. mon fichier user.db a ceci -> attr_accessible: email,: mot de passe,: password_confirmation,: remember_me,: nom pas sûr comment je supprimerais le champ d'email. Iam essayant d'ajouter un champ de nom à mon formulaire d'inscription qui fonctionne avec un champ d'email et de mot de passe, puisque j'ai ajouté un champ de nom ne fonctionne pas? – Neil

+0

Veuillez poster vos fichiers de migration de devise_create_users.rb et add_devise_to_users.rb. –

Répondre

0

J'ai eu la même expérience. Remarqué il y avait un nouveau concept .rb dans le dossier db/migrate. Je l'ai supprimé et puis rafraîchi et cela a fonctionné.