我使用以下命令创建了我的第一个迁移create_users_migration
:
php artisan make:migration create_users_table
我后来意识到出现了错误,因此删除了迁移文件,并决定使用上面相同的命令创建不同的迁移文件。但它不断抛出这个例外:
[ErrorException]
包括(/家/ AWA /桌面/实习生/ TRAIN2 /供应商/作曲家/../../数据库/ MIGR
ations / 2014_10_12_000000_create_users_table.php):无法打开流:否 这样的文件或目录
我做错了什么?
答案 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)
您需要确保数据库文件夹中存在迁移文件夹