php artisan migrate:reset无法打开流:没有这样的文件或目录

时间:2014-08-11 06:57:45

标签: laravel

当我跑

php artisan migrate:reset 

我得到了

[ErrorException]
include(app/database/migrations/2014_08_06_120900_alter_xxx_table.php): failed to
open stream: No such file or directory

但是我没有那个php文件,我只有另一个名为

的文件
2014_08_06_121048_alter_xxx_table.php

mysql中的migrations表只有

2014_08_06_121048_alter_xxx_table.php

但不是

2014_08_06_120900_alter_xxx_table.php

现在我无法重置我的数据库。我该怎么办?

11 个答案:

答案 0 :(得分:98)

首先:

composer dump-autoload

然后进行de rollback。

这项工作对我来说......

composer dump-autoload
php artisan migrate:rollback

答案 1 :(得分:8)

php artisan dump-autoload

解决我的同样问题..而不是手动改变

答案 2 :(得分:6)

删除表migrations中2014_08_06_121048_alter_xxx_table的行并没有真正解决问题。当我再次运行php artisan migrate:reset时,问题又出现了。

最后我找到了自己的本质原因。由于某些原因可能有一些错误的命令,错误的文件名已被写入

./vendor/composer/autoload_classmap.php

所以我更正了这个文件中的文件名,现在一切正常。

答案 3 :(得分:3)

听起来你做了一次迁移,然后在进行回滚之前删除了一个迁移文件。所以现在Laravel不确定如何回滚你的数据库。

最简单的解决方案(因为您无论如何都要重置)是手动清除数据库中的所有表,包括迁移表。

然后只需运行php artisan migrate,它就会安装该表并运行您的迁移。

将来,除非先进行回滚,否则不应手动更改迁移文件。

答案 4 :(得分:1)

此命令有效

php artisan optimize 
php artisan migrate:rollback

答案 5 :(得分:1)

撤消迁移对数据库执行的操作。然后查看迁移表并删除与您删除的文件相关的行。

之后你可能需要运行

 composer dump-autoload 

答案 6 :(得分:0)

autoload_classmap.php中查找文件/vendor/composer。 打开文件并编辑以下内容:

return array{ }中删除现有的table.php文件。

示例:

'CreatePasswordResetsTable' => $baseDir . '/database/migrations/2014_10_12_100000_create_password_resets_table.php'

'CreateUsersTable' => $baseDir . '/database/migrations/2014_10_12_000000_create_users_table.php'

我从该数组中删除了上述两行并再次执行了php artisan make:User -m,并创建了模型和迁移。

答案 7 :(得分:0)

创建会话表时,我遇到了同样的问题。基本上它找不到路径app / database / migrations / 2014_08_06_120900_alter_xxx_table.php。 一种可能性是您的数据库/迁移路径不是app / database / migrations。首先,您应该找到正确的数据库/迁移路径。我在它上面使用了一个十月的cms框架,发现我的路径是“模块/系统/数据库/迁移”。 您需要在SessionTableCommand.php中打开vendor/laravel/framework/src/Illuminate/Session/Console path。在#77行,你会发现$ path变量。将其更改为数据库/迁移的路径。 在我的情况下,第77行看起来像这样:

$path = 'modules/system/database/migrations';

这些错误的发生主要是因为文件或目录的路径不正确。

答案 8 :(得分:0)

使用此命令。它对我有用。

php artisan migrate:rollback

答案 9 :(得分:0)

php artisan dump-autoload

在windows10中表现很好。

答案 10 :(得分:0)

您可能应手动创建文件夹迁移。然后作曲家更新。并运行迁移