php artisan migrate 没有这样的文件或目录

Posted

技术标签:

【中文标题】php artisan migrate 没有这样的文件或目录【英文标题】:Php artisan migrate no such file or directory 【发布时间】:2017-09-26 22:08:16 【问题描述】:

我创建了一个 make:migration 尝试运行迁移时出现以下错误

没有这样的文件或目录(SQL:select * from information_schema.tables 其中 table_schema = 宅基地和 table_name = 迁移)。

在我的 env 文件中,我的 db 名称是 homestead,在我的 db 中,我有一个名为 migrations 的表。不太清楚为什么我会收到此错误。

【问题讨论】:

【参考方案1】:

这对我有用。我正在使用 Homestead vagrant box,还有一堆其他的 Vagrant box 和 Docker 镜像用于各种项目,所以我的 Homestead box 的 IP 不是 127.0.0.1,而是 192.168.10.10。在我将 int .env 文件中的 IP 地址更新为

之前,我得到了 SQLSTATE[HY000] [2002] 的变体
DB_CONNECTION=mysql
DB_HOST=192.168.10.10
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret

和我的config/database.php 一起

'mysql' => [
        'driver' => 'mysql',
        'host' => env('DB_HOST', '192.168.10.10'),
        'port' => env('DB_PORT', '3306'),
...

更改后我还运行了php artisan cache:clearphp artisan config:clear。之后运行

php artisan migrate

返回

Migration table created successfully.

希望它可以帮助某人。 您可以在Homestead/Homestead.yaml 文件中查看您的 Homestead 机器的 IP。

【讨论】:

我有一个非常相似的设置,这也适用于我,但我不知道为什么.. 你的(和我的)宅基地在具有 IP 的虚拟机上运行是正确的192.168.10.10,但 mysql 服务器和 php 正在该虚拟机内运行。因此,要从该虚拟机中访问数据库,您应该使用 localhost,对吗?同样的原因,您在虚拟机中使用端口 3306 而不是 33060,这是您从主机访问数据库的端口。 我在 laradock 中使用 docker,不得不将 .env 更改为 DB_HOST=mysql【参考方案2】:

1) 运行命令:

作曲家转储自动加载

2) 回滚命令:

php 工匠迁移:回滚

然后创建您的迁移:

php artisan make:migration create_users_table

【讨论】:

【参考方案3】:

the documentation 中写道:

如果你使用 Homestead 虚拟机,你应该从 within your virtual machine 运行这个 [php artisan migrate] 命令。

Then,

您可以通过从 Homestead 目录发出 vagrant ssh 终端命令来 SSH 到您的虚拟机。

所以请使用vagrant ssh,或者如果您设置function in the documentation,请使用homestead ssh

登录 vagrant/homstead 虚拟机后,导航到您的代码位置。就我而言,我必须做cd Code/my-project-name。这取决于您如何在 Homestead.yaml 文件中设置宅基地。

现在您位于项目文件夹中,运行 php artisan migrate

如果这仍然不起作用,请确保在您的 .env 文件中添加 DB_PORT is 3306.

【讨论】:

以上是关于php artisan migrate 没有这样的文件或目录的主要内容,如果未能解决你的问题,请参考以下文章

在ubuntu上运行php artisan migrate时没有这样的文件或目录[重复]

在 Mac 上设置 Laravel php artisan migrate 错误:没有这样的文件或目录 [重复]

在 Mac 上设置 Laravel php artisan migrate 错误:没有这样的文件或目录 [重复]

Laravel - php artisan migrate 不起作用

“php artisan migrate”显示“没有要迁移的东西”

php artisan migrate 抛出 PDOException