13

だから私はこのWebアプリに1年間取り組んできました.1つの移行にスキーマをコンパイルしたいと思います.

検索検索が速くなります。

私のconfig/dbは4000pxの長さではありません。

4

4 に答える 4

12

サーバーを移行したら、移行ファイルを削除します。rake db:schema:load新しい展開を開始する場合は、またはを実行しrake db:setupます。ここで説明されているように、すべての移行を再実行するべきではありません。

于 2011-07-26T03:15:50.450 に答える
11

移行を永遠に保持する必要はありません。移行が不要になったと確信したらすぐに削除してかまいません。db/migrate/ディレクトリに移動して、たとえば数か月以上経過した移行を削除するだけです。

削除したいすべての移行がどこにでも適用されている限り (つまり、開発と運用)、それらはもう必要ありません (逆行したくない場合を除きます)。本当に、移行は永続的なファイルであることを意図したものではなく、A から B に移動するためのものであり、単なる荷物です。

于 2011-07-26T03:01:06.403 に答える
3

答えのどれもそれについて言及していないことを考えると、これは仕事をする宝石です: https://github.com/jalkoby/squasher

基本的に、指定した日付まで移行をゼロから再実行し、結果db/schema.rbを最初の移行にロードして、古い移行を置き換えます。テーブルをクリーンアップして、schema_migrationsそれらを取得しないようにすることもできます

up     <timestamp>  ********** NO FILE **********

実行時のエントリrake db:migrate:status

于 2014-08-20T10:58:59.637 に答える
3

1 つの方法は、空のデータベースを使用してすべての移行を実行することです。これで、yaml に保存できるすべてのテンプレート データを取得できました。yaml とスキーマは、既存の移行を実行せずに DB を戻すのに十分なはずです。

ただし、他の回答では、これを行うための既存のツールまたは宝石について言及する必要があります。

于 2011-07-26T02:38:37.503 に答える