web-dev-qa-db-fra.com

nouveau dans Rails, configuration de db puis exécution de rake db: créer / migrer

salut, je suis en train d'apprendre Rails et de suivre un tutoriel. les instructions étaient de modifier le fichier de migration après avoir créé l'application, puis d'exécuter rake db: migrate, puis rake db: create.

j'ai édité le fichier de migration vers ceci:

class CreateUsers < ActiveRecord::Migration
  def change
    create_table :users do |t|
      t.string :username
      t.string :email
      t.string :encrypted_password
      t.string :salt
      t.timestamps
    end
  end
end

puis quand j'ai lancé 'rake db: migrate' j'ai une erreur

Mysql2::Error: Table 'users' already exists: CREATE TABLE `users` ...

après que je suis censé exécuter 'rake db: create', alors je reçois ceci

user_auth_development already exists
user_auth_test already exists
26
Harvey Katrina

Vous courez rake db:create une seule et unique fois, et vous l'exécutez en premier. Ensuite, vous exécutez rake db:migrate chaque fois que vous ajoutez/modifiez une migration. Soit vous avez déjà exécuté cette migration, soit vous pointez sur une base de données qui existe déjà et contient déjà une table nommée users. Je suppose que vous avez déjà exécuté la migration une fois, auquel cas vous êtes probablement prêt à partir. Si vous voulez neutraliser la base de données et recommencer, faites rake db:drop db:create db:migrate.

50
Jim Stewart

Nous pouvons simplement donner, il fera tout le rake nécessaire à la création et à la migration de la base de données

rake db:setup

18
KannanHudson