216

db/migrateフォルダに移行ファイルを追加して実行した後rake db:migrate、前の手順に戻りたいのですが、使用するVERSION=nのが正しい方法だと思いますが、使用するnの正しい値がわかりません。現在のn値を確認​​するコマンドはありますか?

誰かが使用方法の完全な指示を提供できれば素晴らしいでしょうrake db:migrate

4

6 に答える 6

395

初心者向け

rake db:rollbackあなたを一歩戻すでしょう

それから

rake db:rollback STEP=n

ロールバックする最近の移行の数である移行をロールバックしますnn

ここでより多くの参照。

于 2010-12-04T09:43:35.820 に答える
110

最新の移行をロールバックします。

rake db:rollback

n最新の移行をロールバックします。

rake db:rollback STEP=n

rakeのRails移行タスクの使用に関する完全な手順については、移行を実行するためのRailsガイドを参照してください。


ここにいくつかあります:

  • rake db:migrate-まだ実行されていないすべての移行を実行します
  • rake db:migrate VERSION=20080906120000-必要なすべての移行(上または下)を実行して、指定されたバージョンに到達します
  • rake db:migrate RAILS_ENV=test-指定された環境で移行を実行します
  • rake db:migrate:redo-1つの移行をロールバックして、再度実行します
  • rake db:migrate:redo STEP=nn-最後の移行をロールバックして、再度実行します
  • rake db:migrate:up VERSION=20080906120000-up指定された移行のメソッドを実行します
  • rake db:migrate:down VERSION=20080906120000-down指定された移行のメソッドを実行します

そして、移行のバージョン番号をどこから取得するかについての質問に答えるには、次のようにします。

バージョンは、移行のファイル名の数字のプレフィックスです。たとえば、バージョン20080906120000に移行するには、

$ rake db:migrate VERSION=20080906120000

(Railsガイドの実行中の移行から)

于 2014-01-14T16:53:39.013 に答える
8

最善の方法は、downまたはupを使用して特定の移行を再度実行することです(レール4で)。

rails db:migrate:up VERSION = timestamp

次に、タイムスタンプを取得する方法。このパスに移動します

/ db / migrate

元に戻す移行ファイルを特定します。そのファイル名からタイムスタンプを選択します。

于 2015-05-10T05:16:09.310 に答える
6

バージョンがの場合は20150616132425、次を使用します。

rails db:migrate:down VERSION=20150616132425
于 2018-07-25T02:07:03.047 に答える
2

他の人はすでにロールバックする方法についてあなたに答えましたが、あなたはまた、移行のバージョン番号を特定する方法を尋ねました。

  • rake db:migrate:status移行のバージョン、名前、ステータス(上または下)のリストを提供します
  • また、ファイル名にタイムスタンプ、つまりバージョン番号が含まれている移行ファイルを見つけることもできます。移行は次のフォルダにあります。/db/migrate
于 2017-10-20T08:29:04.270 に答える
-2
  try {
        $result=DB::table('users')->whereExists(function ($Query){
            $Query->where('id','<','14162756');
            $Query->whereBetween('password',[14162756,48384486]);
            $Query->whereIn('id',[3,8,12]);
        });
    }catch (\Exception $error){
        Log::error($error);
        DB::rollBack(1);
        return redirect()->route('bye');
    }
于 2020-10-03T04:45:51.857 に答える