Laravel Homestead:迁移不会在共享主机的数据库上进行


Laravel Homestead: Migrations do not occur on shared host's database

我使用Laravel Homestead PHP创建了一个项目,它在本地的开发环境中运行良好。 现在我想将我的 Laravel PHP 应用程序部署到 HostGator 上的共享主机。

我已经在我的 HostGator 帐户中创建了一个新数据库,现在我希望将数据上传到这个实时数据库中。

到目前为止.php我已经尝试使用实时数据库主机的信息在项目的配置文件夹中编辑文件数据库。 但是,当我尝试运行迁移时,不会在我的实时数据库中创建数据库表。

这是我项目的数据库.php文件:

'mysql' => array(
        'driver'    => 'mysql',
        'host'      => 'MY_HOSTGATOR_IP_ADDRESS',
        'database'  => 'MY_DATABASE_NAME',
        'username'  => 'DATABASE_USERNAME',
        'password'  => 'DATABASE_USERNAME_PASSWORD',
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
    ),

在我的 Laravel Homestead 项目中,是否有另一个文件需要编辑,以建立与我的实时数据库的连接?

任何帮助将不胜感激!

您可以在许多位置定义数据库连接。默认情况下,您将在此处定义它们:

app/config/database.php

另请注意,您的Laravel安装具有以下文件夹:

app/config/local/database.php

每当我将项目迁移到实时服务器时,我都会将以下文件夹和文件添加到 Laravel 中:

app/config/production/app.php
app/config/production/database.php 

您在此文件夹中所做的更改(包括database.php中的任何数据库连接)将是Laravel在生产环境中使用的设置。要检查当前环境,请使用:

php artisan env

默认情况下应该显示生产,除非您在bootstrap/start.php中更改了这些设置:

$env = $app->detectEnvironment(array(
  'local' => array('local_computer_name'),
  'production' => array('server_name') 
));

例如,我的本地虚拟盒子的名称为 timpc ,因此设置 'local' => array('timpc') 会导致php artisan env回显"本地"。

希望这有所帮助,这是TL:DR

  • 在应用程序/配置中创建一个名为 production 的文件夹
  • 创建app.phpdatabase.php的文件,并根据生产环境的需要进行修改。
  • 确保bootstrap/start.php中具有将服务器名称应用于Production环境的设置。

这应该可以解决您面临的问题。如果没有,他们的是另一件事。快速提问,您是否使用 Git 或类似的东西将 Laravel 项目推送到 HostGator?我假设你有,并且你正在使用 HostGator 的 CLI 来调用php artisan migrate,但如果没有,那将是问题所在。

干杯!