2016-10-05 13 views
0

私はまだレールが初めてで、レールの移行に関するいくつかの質問があります。rails db:データベースを手動で変更した後でmigrateが動作しない

私はレール5、ウィンドウ8を使用しています。モデルを生成し、列を含むテーブルを作成するコードを書きました。その後、私は自分の開発データベース(MySQL)からそのテーブルを削除し、db:migrateを再度実行して、移行ファイルに書き込まれたテーブルとカラムを作成するかどうかを確認しました。 db:migrateの実行後、端末にメッセージが表示されず、テーブルとカラムも作成されませんでした。

私の観察に基づいて、schema_migrationsからマイグレーションファイルのバージョンを削除し、db:migrateをもう一度実行して、テーブルとカラムを作成して作成しました。

大規模なデータベースモデルの開発を開始するときに、なぜこれが起こっているのか、またどうすればよいのかについてレール開発の賛否をお尋ねしたいと思います。

また、Ruby on Railsを学ぶための優れたリソース資料に関する提案もあります。

ありがとうございます!

答えて

0

そのため、rake db:migrateは、まだ実行されていない現在のenvの移行のみを実行しているためです。したがって、db:migrateを実行してから、手動でテーブルフォームDBを削除すると、アプリはそれを認識しません。

MIgration Guides

+0

ありがとうPiotor!だから、データベース自体を変更するには、私はそれをマイグレーションファイルを使って行うべきですか?既存の移行ファイルを使用してテーブルを変更することは可能ですか? – parapapao

+0

移行ファイルを作成してrake dbを実行した場合:別の移行を書き込む方が良いでしょう。あなたはいなくても、それははるかにきれいです。すべての移行を再度実行したい場合は、 'rake db:drop db:create db:migrate'を実行できます。最後の移行を編集するには、ロールバックを使用できますが、すべてがガイドにあります。 – Argonus

関連する問題