在laravel中创建迁移时出错:'无法打开流'

时间:2016-11-25 12:19:49

标签: laravel-5 migration

我使用以下命令创建了我的第一个迁移create_users_migration

php artisan make:migration create_users_table

我后来意识到出现了错误,因此删除了迁移文件,并决定使用上面相同的命令创建不同的迁移文件。但它不断抛出这个例外:

  

[ErrorException]
    包括(/家/ AWA /桌面/实习生/ TRAIN2 /供应商/作曲家/../../数据库/ MIGR
    ations / 2014_10_12_000000_create_users_table.php):无法打开流:否      这样的文件或目录

我做错了什么?

9 个答案:

答案 0 :(得分:65)

我定期收到此错误,以下是一些可能有用的内容:

php artisan cache:clear

或在bootstrap目录中手动删除缓存(它负责路由和服务缓存。

这些方法也可以提供帮助:

composer dump-autoload -o
composer update

Composer dump-autoload重新生成需要包含在项目中的所有类的列表(autoload_classmap.php)。

-o / --optimize 选项将PSR-4 / PSR-0规则转换为类映射规则,因此自动加载器无需访问文件系统,从而使其运行更快 - 由于Laravel自动加载器使用此优化(缓存),这通常也是问题的根源。

还回滚迁移有助于多次解决问题(如果迁移成功):

php artisan migrate:rollback

答案 1 :(得分:11)

我收到了这个错误,我找到了社区的解决方案:

  

php artisan cache:clear

这将删除缓存的文件

  

composer dump-autoload

composer dump-autoload,将为您的项目agian重新生成优化的自动加载文件

  

php artisan migrate:refresh

然后为您的数据库创建一个新的全新迁移

  

php artisan make:migration create_users_table --create = users

最后让我们开始制作新的迁移文件

答案 2 :(得分:6)

然后,您可能需要运行composer dump-autoload

答案 3 :(得分:1)

我遇到了同样的错误,尝试了上述解决方案-对我不起作用。 最后,我使用以下命令重新创建了已删除的迁移文件。

php artisan make:migration create_my_table

然后我运行以下命令-现在它可以正常工作

php artisan migrate:refresh

答案 4 :(得分:1)

有时可能是 Laravel 中的 缓存 问题。

不需要安装作曲家和其他东西。首先尝试简单的方法:-

只需将此代码添加到您的 routes / web.php 文件

Route::get('/clear-cache', function() {
    Artisan::call('cache:clear');
    return "Cache is cleared";
});

在浏览器中,只需按url

www.yourdomain.com/clear-cache

如果成功,它将显示消息

Cache is cleared

答案 5 :(得分:0)

如此简单,效果更好。只需使用:

composer dump-autoload -o

然后制作新的迁移文件

答案 6 :(得分:0)

我已经将Laravel更新为较新的版本,这就是问题所在。我更新了作曲家,并且工作正常。在项目目录中,运行以下命令:

$作曲家更新

答案 7 :(得分:0)

首先要检查的是-您是否具有创建的文件夹 / database / migrations 如果它不存在,您将得到描述的错误:(只需手动创建并重新运行命令即可。

答案 8 :(得分:0)

您需要确保数据库文件夹中存在迁移文件夹