php - 来自 git clone 的 Laravel 项目不工作(不能使用密钥:生成或作曲家安装/更新)
问题描述
我正在从 github 克隆我现有的(和正在工作的)Laravel 项目以开始一个新项目。创建 .env 的新副本并从 .env.example 填充。然后像往常一样尝试通常的“作曲家更新(或安装)”和“php artisan key:generate”过程。但是任何带有 artisan 或 composer 的命令都会出现这个错误:
SQLSTATE[HY000] [2002] No such file or directory (SQL: select `image_resize` from `settings` where `id` = 1 limit 1)
SQLSTATE[HY000] [2002] No such file or directory
我正在使用 MAMP 并使用正确且有效的数据库信息填充 .env 文件(数据库现在为空)
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=new_proj_db
DB_USERNAME=root
DB_PASSWORD=root
我知道这是一个数据库问题,但我什至无法使用工厂和播种使用虚拟信息填充我的数据库。它们都以相同的错误“SQLSTATE [HY000]......”结束,我无法生成密钥或更新作曲家依赖项。
也许我应该注释掉一些导致这个问题的代码。(SQL: select image_resize
from settings
where .....) 'image_size' 和 'settings' 是我的代码,但我不明白为什么它们会在全新安装时出现问题。
显然我错过了一些非常简单并且愿意接受任何建议的东西。
解决方案
我发现了问题。在 register() 方法下的“Providers/AppServiceProvider.php”中,我定义了一些使用数据库连接的全局配置。据我了解,任何时候你向 laravel 发出请求,这些函数都会首先运行,因为数据库在项目开始时还没有准备好,会返回一个错误。我已经注释掉了这些行,像往常一样使用了 composer install, key:generate 并迁移并植入了数据库。然后重新添加这些行。现在一切正常。
推荐阅读
- javascript - 在图片中写入实时文本(在图片中实时渲染文本)
- php - MySQL:一对多关系表,将所有选择命令返回到单个 json 列
- mysql - 上传大excel文件有问题,但可以上传小文件
- angular - ng build 完成后如何继续脚本?
- .net - 如何将当前表单集成到 MDI 表单中
- r - 如何将 R 数据框转换为列表列表?
- google-chrome-extension - 如何使用 chrome 扩展在一页中记录所有 WebSocket 响应
- c++ - 我怎样才能写出干净利落的c++构造函数?
- python - 如何使用 Python 从 docx 文件中提取元数据?
- apache - Flask 和 Apache - 日志中没有错误,总是 404