2017-10-13 8 views
0

私は2つの移行ファイルを削除し、コミットして変更をプッシュしました。私はエラーを取得するartisan migrateコマンドを実行しようとすると、今すぐ:Laravel 4削除された移行

[InvalidArgumentException] 
There are no commands defined in the "xyz" namespace. 

を私はだから今、私はcomposer dump-autoload、すべてのartisanを実行しようとしたエラー

{"error":{"type":"Symfony\\Component\\Debug\\Exception\\FatalThrowableError","message":"Class 'ClassNameXYZ' not found","file":"....vendor\/laravel\/framework\/src\/Illuminate\/Database\/Migrations\/Migrator.php","line":301}} 

を取得するので、私はまたartisan migration:rollbackを行うことはできませんキャッシュのクリアに関するコマンドですが、移行しようとすると同じことが起こります。

データベースを削除することはできません。プロダクションブランチ上でマージする必要があります。このようにしてドロップして再配置すると、プロダクションサーバーが破損します。

手動で削除したマイグレーションを追加してから、composer dump-autoloadを追加しようとしましたが、ロールバックしようとしても同じエラーが表示されます。

私はまた、コミット前のから戻って削除された移行をフェッチしたかった、とこれをしなかった:

git checkout __COMMIT__ __FILENAME__ 

が、私は2つのエラーを取得し、次のいずれか

error: pathspec '__FILENAME__' did not match any file(s) known to git. 

か:

fatal: __FILENAME__: '__FILENAME__' is outside repository 

どうすればこの問題を解決できますか?

EDIT

私はgit resetをすることについて考えたが、残念ながら、問題のコミットは、最後の一つ前です。最後のコミットはもはや存在しないブランチのマージです。私がそれをリセットすると、最後のブランチとマージした変更は失われます。

答えて

0

エラーが見つかりました。前回の変更をコミットしたときとは異なる名前を持つカスタムのartisanコマンドを呼び出すことによる移行が原因でした。

なぜ私はgitの問題が起こっているのかまだ分かりませんが、今は重要ではありません。

0

私はあなたのコメントの下に従うべきだと思う:

マイグレーションクラスファイル(XYZ)を削除した場合、単純に移行テーブルからレコードを削除します。コマンドphp artisan migrateを実行した後。

+0

プロダクションサーバーで同じことをする必要があります。現時点ではオプションではありません – Norgul

+0

@Norgul:このクラスは移行テーブルに追加されているので、毎回影響が出る可能性があります –

関連する問題