【问题标题】:How to run migrate on homestead when running migrate locally with Laravel?使用 Laravel 在本地运行迁移时如何在宅基地上运行迁移?
【发布时间】:2015-10-25 18:09:02
【问题描述】:

我必须通过 SShing 在宅基地箱上运行迁移:

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

我宁愿只在本地文件夹上运行 migrate 并自动在来宾(虚拟)机器上运行迁移。

【问题讨论】:

  • 你使用什么数据库?

标签: laravel homestead


【解决方案1】:

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

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

而不是DB_HOST=localhost

它必须有效。

PS: Homestead 也会重定向端口,所以可能你需要将数据库的端口更改为:33060

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

但是,请先检查第一个配置。

最好的祝愿。

【讨论】:

    【解决方案2】:

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

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

    如果可行,您只需为运行上述内容的“迁移”创建一个别名,就是这样。

    【讨论】:

      【解决方案3】:

      当你正确安装 Homestead 时,你必须有一个包含 Laravel 应用程序的本地目录。因此,无需输入 ssh 即可更改文件或运行 artisan 命令。

      您可以使用终端并转到 Laravel 应用程序的本地目录。从那里您可以使用工匠命令。使用简单的形式“php artisan”来查看它是否正常工作。

      拥有这个本地应用程序目录(与 Homestead VM 中的相同)的诀窍是提前创建它,Laravel Homestead 的安装也会填充该本地目录。本地目录的名称必须在 Homestead.yaml in folder 部分,如下所示。

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

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

      为了拥有本地网络服务器(localhost:8000),您可以运行“php artisan serve”。请记住让您的本地数据库处于活动状态。因此,您拥有相同的代码、相同的架构,但数据库中的数据不同。

      【讨论】:

        【解决方案4】:

        这对我有用,我创建了一个数据库: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 以获取有关

        的文档

        【讨论】:

          【解决方案5】:

          其实你在文档中也需要注意这部分:

          从主机连接到数据库时,您应该只使用这些非标准端口。由于 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
          

          【讨论】:

            猜你喜欢
            • 2015-08-15
            • 1970-01-01
            • 2020-05-27
            • 2020-02-12
            • 2013-09-11
            • 1970-01-01
            • 2020-10-24
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多