使用Laravel在本地迁移时如何在宅基地上运行迁移?

时间:2015-10-25 18:09:02

标签: laravel homestead

我必须通过SShing在宅基地框上进行迁移:

homestead ssh
cd ~/Code/my-project
php artisan migrate

我希望只在本地文件夹上运行migrate,并自动在来宾(虚拟)计算机上运行迁移。

5 个答案:

答案 0 :(得分:7)

默认情况下,Laravel使用localhost作为数据库主机,只需转到homestead.yaml文件并检查第一行的IP地址(可能是=> ip:“192.168.10.10”)。 在.env文件中使用此IP作为主机:

在.env文件中使用:DB_HOST=192.168.10.10

而不是DB_HOST=localhost

它必须有效。

PS: Homestead还重定向端口,因此您可能需要将数据库的端口更改为:33060

在.env文件中,使用:DB_PORT=33060,而不是DB_PORT=3306

但是,请先查看firt配置。

祝福。

答案 1 :(得分:1)

正确安装Homestead后,您必须在Laravel应用程序中拥有一个本地目录。因此,无需输入ssh即可更改文件或运行artisan命令。

您可以使用终端并转到Laravel应用程序的本地目录。在这里,您可以使用工匠命令。使用简单的形式“ php artisan”可以看到它正在工作。

拥有此本地应用程序目录(与Homestead VM中的目录相同)的技巧是提前创建它,并且Laravel Homestead的安装也将填充该本地目录。本地目录的名称必须在“文件夹”部分的Homestead.yaml中,如下所示。

文件夹:     -地图:d:/ Homestead_Projects       到:/ home / vagrant / code

由于您在本地运行php脚本,因此您必须在计算机中安装php的更新版本。您也可以在本地计算机中拥有本地mysql服务器。 进行本地数据库迁移时,将更新本地数据库。如果要在Homestead中更新数据库,则必须使用ssh。 因此,您有两组不同的数据。如果将Laravel应用程序代码与本地Web服务器一起使用,则可以使用本地数据库的数据。使用Homestead(nginx)的Web服务器时,将使用Homestead数据库数据。

为了拥有本地Web服务器(localhost:8000),您可以运行“ php artisan serve”。记住要激活本地数据库。因此,您具有相同的代码,相同的架构,但是数据库中的数据不同。

答案 2 :(得分:0)

您正在寻找的命令是:homestead ssh -c "cd ~/Code/my-project; php artisan migrate; exit"

尝试从本地控制台运行它以进行测试。

如果有效,您只需为" migrate"创建一个别名。运行上述内容,就是这样。

答案 3 :(得分:0)

这对我有用,我创建了一个数据库:laravel,然后将DB_PORT=3306更改为DB_PORT=33060

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=33060
DB_DATABASE=laravel
DB_USERNAME=homestead
DB_PASSWORD=secret

也请访问:https://laravel.com/docs/5.8/homestead#connecting-to-databases,以获取有关

的文档

答案 4 :(得分:0)

实际上,您还需要注意文档中的这一部分:

从主机连接到数据库时,仅应使用这些非标准端口。由于Laravel在虚拟机中运行,因此您将在Laravel数据库配置文件中使用默认的3306和5432端口。

这对Laravel 7来说对我有用。

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=sardar
DB_USERNAME=homestead
DB_PASSWORD=secret