だから、たくさん読んだ後、データベースを前もって計画する必要がないことがわかりました。私はアプリケーションの作業を開始し、変更ごとに移行を行います。
たとえば、何かを追加することにした場合は、移行を介して追加します。次に、別の移行で、何らかの理由でそれを削除します。そして最後に、私はそれを取り戻すことにしました。しばらくすると、移行の混乱が発生します。
どうすればそれらを追跡できますか? そもそもデータベース構造を考える方が簡単ではないでしょうか?
だから、たくさん読んだ後、データベースを前もって計画する必要がないことがわかりました。私はアプリケーションの作業を開始し、変更ごとに移行を行います。
たとえば、何かを追加することにした場合は、移行を介して追加します。次に、別の移行で、何らかの理由でそれを削除します。そして最後に、私はそれを取り戻すことにしました。しばらくすると、移行の混乱が発生します。
どうすればそれらを追跡できますか? そもそもデータベース構造を考える方が簡単ではないでしょうか?
Rails の方法は、マイグレーションを介してすべてを行うことです。あなたのシナリオによれば、それは次のようになります:
migration1 #add column A
migration2 #remove column A
migration3 #add column A again
多くの移行があるように見えますが、実際のシナリオでは、データベースの変更をクリーンに保ちます。いつでも次のことを行うためです。
rake db:migrate
Rails は、保留中の移行のみを実行します。
そして、いつでもdb/schema.rb
、すべての移行と最新の移行番号をバージョンとして含むファイルが表示されます。
そうは言っても、移行を元に戻したい場合は、コマンドのようなrollback
コマンドがあります。移行の詳細については、こちらをご覧ください。