我正在尝试在 RedHat OpenShift 上部署 Laravel 4.2 应用程序。我已经成功地从 GitHub 转移了代码,但我被困在了数据库集成上。
如何运行迁移?
- 我已经
mysql_openshift
使用 OpenShift 凭据创建了一个新的数据库连接并进行了更新。 - 我在迁移文件夹中有一个迁移文件。
- 但是在运行时
php artisan migrate
我得到以下错误:
http://i.stack.imgur.com/nQbam.png
请帮忙!
我正在尝试在 RedHat OpenShift 上部署 Laravel 4.2 应用程序。我已经成功地从 GitHub 转移了代码,但我被困在了数据库集成上。
如何运行迁移?
mysql_openshift
使用 OpenShift 凭据创建了一个新的数据库连接并进行了更新。php artisan migrate
我得到以下错误:http://i.stack.imgur.com/nQbam.png
请帮忙!
Laravel 4.2 QuickStart已于 2 天前更新。php artisan migrate
现在,当您将更改部署到 OpenShift 时,QuickStart 会自动运行。我绝对建议切换到使用 QuickStart 或更新到最新版本。
无论如何,对您所看到的问题的简短回答:您的数据库在 Laravel 中没有正确配置。有关配置主机/端口连接信息的参考,请参阅Laravel 4.2 快速入门中的第 60-70 行。app/config/database.php
您的 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,],