Laravel 4删除了迁移

时间:2017-10-13 06:41:10

标签: php git laravel migration

我删除了2个迁移文件,已提交并推送了更改。现在,当我尝试运行artisan migrate命令时,出现错误:

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

我也无法artisan migration:rollback,因为我收到了错误

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

所以现在我尝试运行composer dump-autoload和所有关于清除缓存的artisan命令,但是当我尝试迁移时,我得到同样的东西。

我无法删除数据库,因为这需要在生产分支上合并,所以如果我这样离开并删除并重新设置数据库,它将在生产服务器上中断。

我尝试手动添加已删除的迁移,然后composer dump-autoload,但在尝试回滚时仍然遇到相同的错误。

我还希望从之前的提交中获取已删除的迁移,并执行此操作:

git checkout __COMMIT__ __FILENAME__

但我得到两个错误:

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

或:

fatal: __FILENAME__: '__FILENAME__' is outside repository

我该如何解决这个问题?

修改

我考虑过做git reset,但不幸的是,有问题的提交是最后一次。最后一次提交是不再存在的分支的合并,所以如果我重置它,我将失去与最后一个分支合并的更改。

2 个答案:

答案 0 :(得分:0)

我认为你应该遵循以下评论:

如果删除迁移类文件(xyz),只需从迁移表中删除该记录即可。并在运行命令php artisan migrate

之后

答案 1 :(得分:0)

我发现了一个错误。这是由于迁移调用自定义InitializeComponent命令,该命令与上次提交更改时的名称不同。

我仍然不知道为什么git问题正在发生,但现在并不重要。

相关问题