web-dev-qa-db-ja.com

Railsの新機能。dbをセットアップしてからrake db:create / migrateを実行

こんにちは、現在Railsを学習しており、チュートリアルに従っています。指示は、アプリを作成した後に移行ファイルを編集し、rake db:migrateを実行してからrake db:createを実行することでした。

私はこれに移行ファイルを編集しました:

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

その後、「rake db:migrate」を実行するとエラーが発生しました

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

「rake db:create」を実行することになった後、これを取得しています

user_auth_development already exists
user_auth_test already exists
26
Harvey Katrina

rake db:createを一度だけ実行し、最初に実行します。その後、移行を追加/変更するたびにrake db:migrateを実行します。この移行を既に実行しているか、既に存在し、usersという名前のテーブルが既に含まれているデータベースを指しています。私の推測では、すでに移行を一度実行したことがあるので、その場合はおそらく良いでしょう。 DBを破棄してやり直す場合は、rake db:drop db:create db:migrateを実行します。

50
Jim Stewart

データベースの作成と移行に必要なすべてのrakeタスクを実行します。

rake db:setup

18
KannanHudson