2

我正在尝试在 RedHat OpenShift 上部署 Laravel 4.2 应用程序。我已经成功地从 GitHub 转移了代码,但我被困在了数据库集成上。

如何运行迁移?

  • 我已经mysql_openshift使用 OpenShift 凭据创建了一个新的数据库连接并进行了更新。
  • 我在迁移文件夹中有一个迁移文件。
  • 但是在运行时php artisan migrate我得到以下错误:

http://i.stack.imgur.com/nQbam.png

请帮忙!

4

2 回答 2

0

Laravel 4.2 QuickStart已于 2 天前更新。php artisan migrate现在,当您将更改部署到 OpenShift 时,QuickStart 会自动运行。我绝对建议切换到使用 QuickStart 或更新到最新版本。

无论如何,对您所看到的问题的简短回答:您的数据库在 Laravel 中没有正确配置。有关配置主机/端口连接信息的参考,请参阅Laravel 4.2 快速入门中的第 60-70 行。app/config/database.php

于 2015-04-11T13:50:54.307 回答
0

您的 openshift db 参数设置不正确。

查看您的 config/database.php,您将看到如何使用 .env 中的设置。就像之前我们尝试从 Openshift 获取环境变量一样。函数 env('DB_HOST', 'default') 将从 .env 获取 DB_HOST 或使用第二个参数中的默认值。由于 .env 被排除在版本控制之外,Laravel 将采用 Openshift 特定的设置。

因此,将以下代码放入您的 config/app.php :

'mysql' => [
'driver'    => 'mysql',
'host'      => env('DB_HOST', getenv('OPENSHIFT_MYSQL_DB_HOST')),
'database'  => env('DB_DATABASE', getenv('OPENSHIFT_APP_NAME')),
'username'  => env('DB_USERNAME', getenv('OPENSHIFT_MYSQL_DB_USERNAME')),
'password'  => env('DB_PASSWORD', getenv('OPENSHIFT_MYSQL_DB_PASSWORD')),
'port'      => env('DB_PORT', getenv('OPENSHIFT_MYSQL_DB_PORT')),
'charset'   => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix'    => '',
'strict'    => false,],
于 2016-04-07T07:11:09.997 回答