首页 > 解决方案 > 来自 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_resizefrom settingswhere .....) 'image_size' 和 'settings' 是我的代码,但我不明白为什么它们会在全新安装时出现问题。

显然我错过了一些非常简单并且愿意接受任何建议的东西。

标签: phplaravelgithubclone

解决方案


我发现了问题。在 register() 方法下的“Providers/AppServiceProvider.php”中,我定义了一些使用数据库连接的全局配置。据我了解,任何时候你向 laravel 发出请求,这些函数都会首先运行,因为数据库在项目开始时还没有准备好,会返回一个错误。我已经注释掉了这些行,像往常一样使用了 composer install, key:generate 并迁移并植入了数据库。然后重新添加这些行。现在一切正常。


推荐阅读