Rails では、データベース マイグレーションを作成して、データベースの列を変更することができますadd_column
。ただし、db/migrate でデータベース ファイルを直接編集することもできます。では、データベース ファイルを変更する代わりに、毎回マイグレーションを作成する必要があるのでしょうか?
前もって感謝します。
Rails では、データベース マイグレーションを作成して、データベースの列を変更することができますadd_column
。ただし、db/migrate でデータベース ファイルを直接編集することもできます。では、データベース ファイルを変更する代わりに、毎回マイグレーションを作成する必要があるのでしょうか?
前もって感謝します。
db / migrate内のファイルは、generate migration
コマンドによって生成されたファイルです。
このコマンドを使用して処理を高速化できます。これにより、railsは設定より規約を優先します。これがレールの方法です。
ただし、手動で何かを実行したい場合、またはより複雑な操作を実行したい場合は、db / migrate内のファイルを手動で編集し、新しいファイルを追加することもできます。その後、rake db:migrate
コマンドを実行してデータベースへの変更をコミットする必要があります。
理論的には、数百万行の本番データベースがあるように見えます。データベースを変更または追加するたびに、別のファイルを修正し、そのデータを失わないようにそれらの変更を適用します。
たとえば先週の db/migrate ファイルを編集しただけでは、最初は取得されませんがbundle exec rake db:migrate
、それらの変更をロールバックする必要があり、データが破壊されます。
したがって、質問に 1 行で答えるには、単純な変更であっても、移行を追加し続けてください。
schema.rb からデータベースを再構築するか、最初のデータベース作成移行により、すべてのデータが破壊されます。増分変更を本番システムにデプロイするには、移行が必要です。あなたの開発サイクルの間、私はそれらを使用しません。テスト/開発データには、モック、フィクスチャ、またはファクトリを使用します。