8

移行に失敗したため、MySQL Workbench で手動でクエリを実行しました。

移行を完了としてマークする熟練したコマンドはありますか? そのため、将来の移行を実行するときに、実行する必要がないことがわかっている移行をスキップします。

このコマンドでそれらとそのステータスを一覧表示し、実行されたものと実行されていないものを確認できます。

php artisan migrate:status 

おそらくコマンドがない場合は、データベース移行テーブルにエントリを手動で挿入できます。(ただし、現時点では移行はありません:P)

移行を削除することもできると思います。

4

4 に答える 4

5

移行のSQLをデータベースで直接実行すると書いたので、別の2つのステートメントを実行しても問題ないと思います。

laravel 5.7 (およびおそらくいくつかの下位バージョン) では、データベース (migrations表) に移行情報を入力する必要があります。

必要な情報は、migration(拡張子のないファイル名.php) とbatch番号 (たとえば、移行をロールバックするときに一度に実行する移行を決定するため) です。

最初に、最後のバッチ番号が次のとおりであることを確認する必要があります。

SELECT MAX(batch) from migrations;

上記のクエリが を返すとしましょう42。次に、バッチ番号でデータを挿入する必要があります42 + 1 = 43

実行済みとしてマークする移行が であると仮定するとdatabase/migrations/2019_01_29_091850_update_jobs_table_for_laravel_5_3.php

実行する必要がある情報を入力するには:

-- note that you should not include the .php extension
INSERT INTO migrations VALUES ("2019_01_29_091850_update_jobs_table_for_laravel_5_3", 43);

次に、実行php artisan migrate:statusすると、移行が実行されたと報告されます。

1 つのクエリでタスクを達成できるかもしれません...そのタスクは、SQL の専門家からのコメントのために開いたままにします。

于 2019-01-29T10:21:46.177 に答える
1

現在 (Laravel <= 5.6)、移行を実行済みとしてマークするためにデータベースを更新するコマンドはありません。手動で行う必要があります。

于 2018-02-24T02:16:27.823 に答える