Ruby on Railsでの移行は、データベースの単なる更新であると想定するのは正しいことです。そして、rake db:migrateスクリプトは、これらの変更を実現するためだけに機能しますか?
質問する
66 次
1 に答える
2
はい。
移行は、構造化され組織化された方法でデータベースを変更するための便利な方法です。SQLのフラグメントを手動で編集することもできますが、その場合は、他の開発者にSQLのフラグメントを実行する必要があることを通知する責任があります。また、次にデプロイするときに、本番マシンに対してどの変更を実行する必要があるかを追跡する必要があります。
Active Recordは、どの移行がすでに実行されているかを追跡するため、ソースを更新してrake db:migrateを実行するだけです。Active Recordは、どの移行を実行する必要があるかを判断します。また、データベースの構造に一致するようにdb/schema.rbファイルを更新します。
移行では、Rubyを使用してこれらの変換を記述することもできます。これの素晴らしいところは、(Active Recordのほとんどの機能と同様に)データベースに依存しないことです。SELECT*のバリエーションについて心配するよりも、CREATE TABLEの正確な構文について心配する必要はありません(ドロップダウンしてデータベース固有の機能のための生のSQL)。たとえば、開発ではSQLite3を使用できますが、本番環境ではMySQLを使用できます。
于 2012-06-13T14:24:00.947 に答える