0

Rails では、データベース マイグレーションを作成して、データベースの列を変更することができますadd_column。ただし、db/migrate でデータベース ファイルを直接編集することもできます。では、データベース ファイルを変更する代わりに、毎回マイグレーションを作成する必要があるのでしょうか?

前もって感謝します。

4

3 に答える 3

1

db / migrate内のファイルは、generate migrationコマンドによって生成されたファイルです。

このコマンドを使用して処理を高速化できます。これにより、railsは設定より規約を優先します。これがレールの方法です。

ただし、手動で何かを実行したい場合、またはより複雑な操作を実行したい場合は、db / migrate内のファイルを手動で編集し、新しいファイルを追加することもできます。その後、rake db:migrateコマンドを実行してデータベースへの変更をコミットする必要があります。

于 2012-09-29T00:04:46.723 に答える
1

理論的には、数百万行の本番データベースがあるように見えます。データベースを変更または追加するたびに、別のファイルを修正し、そのデータを失わないようにそれらの変更を適用します。

たとえば先週の db/migrate ファイルを編集しただけでは、最初は取得されませんがbundle exec rake db:migrate、それらの変更をロールバックする必要があり、データが破壊されます。

したがって、質問に 1 行で答えるには、単純な変更であっても、移行を追加し続けてください。

于 2012-09-29T00:11:29.507 に答える
1

schema.rb からデータベースを再構築するか、最初のデータベース作成移行により、すべてのデータが破壊されます。増分変更を本番システムにデプロイするには、移行が必要です。あなたの開発サイクルの間、私はそれらを使用しません。テスト/開発データには、モック、フィクスチャ、またはファクトリを使用します。

于 2012-09-29T00:28:15.367 に答える