Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 5 在laravel中创建迁移时出错:';无法打开流';_Laravel 5_Migration - Fatal编程技术网

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

Laravel 5 在laravel中创建迁移时出错:';无法打开流';,laravel-5,migration,Laravel 5,Migration,我使用以下命令创建了我的第一次迁移create\u users\u migration: php artisan make:migration create_users_table 后来我意识到有一个错误,所以删除了迁移文件,并决定使用上面的相同命令创建不同的迁移文件。但它不断抛出这个异常: [错误例外] 包括(/home/awa/Desktop/intern/train2/vendor/composer/。/../database/migr ations/2014\u 10\u 12\u00

我使用以下命令创建了我的第一次迁移
create\u users\u migration

php artisan make:migration create_users_table
后来我意识到有一个错误,所以删除了迁移文件,并决定使用上面的相同命令创建不同的迁移文件。但它不断抛出这个异常:

[错误例外]
包括(/home/awa/Desktop/intern/train2/vendor/composer/。/../database/migr
ations/2014\u 10\u 12\u000000\u创建用户\u table.php):未能打开流:否
这样的文件或目录


我做错了什么?

然后您可能需要运行
composer dump autoload
我经常会遇到此错误,以下是一些可能有帮助的事情:

php artisan cache:clear
或者在引导目录中手动删除缓存(它负责路由和服务缓存)

这些方法也有助于:

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

-o/--optimize选项将PSR-4/PSR-0规则转换为类映射规则,因此autoloader不需要访问文件系统,使其运行更快,这也是问题的根源,因为Laravel autoloader使用这种优化(缓存)

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


我犯了这个错误,我在社区中找到了一个解决方案: php artisan缓存:清除

这将删除缓存文件

作曲家转储自动加载

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

php artisan迁移:刷新

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

php artisan make:迁移创建用户表--create=users


最后,让我们开始使您的新迁移文件变得如此简单,并且工作得更好。只需使用:

composer dump-autoload -o

然后创建新的迁移文件

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

php artisan make:migration create_my_table
然后我运行了下面的命令-现在它正在工作

php artisan migrate:refresh

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

无需安装composer和其他东西。首先尝试以下简单方法:-

只需将此代码添加到您的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

我已将Laravel更新为新版本,这就是问题所在。我更新了composer,它工作正常。在项目目录中运行以下命令:

$composer更新


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

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

我只需要做:我只需要运行composer dump autoload
composer dump autoload-o
。谢谢。这在查找了一段时间后非常有帮助。但他们为什么决定将迁移插入数据库文件夹composer
自动加载\u classmap
?这对我来说没有多大意义,因为它们几乎是一次性文件,不应该加载普通请求。这非常愚蠢,但它是唯一的解决方案。如果您为其创建路由,只需点击URL www.yourdomain.com/clear-cache。[检查我的答案]()有人找到了这个问题的原因吗?在我的例子中,/project name/database下或数据库文件夹所在的位置缺少migrations文件夹。只需创建一个名为“migrations”的新文件夹,我就解决了这个问题。
Cache is cleared