既に "db/migrate/20180712120223_create_diaries.rb" というファイルが存在します。
というメッセージです。
ファイル名から推測すると 2018/07/12 12:02:23 に一度 diaries
テーブル(diary model
) を作成するための、rails g scaffold
, rails g model
, rails g migrate
のいずれかのコマンドを実行しているということがわかります。
その状態で、再度 rails g scaffold dairy
を実行しているので、同じ名前のテーブルを2つ作ろうとしている為エラーになっているということです。
対処法
- 過去に作成した
diaries
テーブル が誤りで、実際の SQL にもまだテーブルを作成していない(rails db:migrate
を実行していない)状態であれば、 "db/migrate/20180712120223_create_diaries.rb" を削除すれば大丈夫です。
diaries
テーブルを既に作っていて(rails db:migrate
を実行している)、カラムなどを追加・削除をしたいだけの場合は、 rails g scaffold
ではできません。rails g migration
などを使って行います。
diaries
テーブルを既に作っていて(rails db:migrate
を実行している)、そのテーブルが誤りで全てなかったことにしたい場合には、rails db:rollback
を実行すると、SQL から diaries
を作ったことをなかったことにしてくれます。
rails db:rollback
した後に、"db/migrate/20180712120223_create_diaries.rb" を削除すれば大丈夫です。
ただし、rails db:rollback
は一番最近の db/migrate/*.rb
ファイルを rollback (戻す)してくれるだけなので、もし 20180712120223_create_diaries.rb
の後に別の migrate ファイルが出来ていた場合には、複数回実行して diaries
を作成する前にまで戻す必要があります。
migration ファイルが何者なのかに関して、詳しくは Rails ガイドをご覧になるといいと思います。
Active Record マイグレーション | Rails ガイド
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。