我想在heroku上使用MySQL运行应用程序。我已经为此安装并配置了cleardb
。我剩下要做的就是配置环境变量。但是,我找不到合适的方法来做到这一点。
在这个article中,Matt解释了如何配置上述变量:
// config/database.php
$url = parse_url(getenv("CLEARDB_DATABASE_URL"));
$host = $url["host"];
$username = $url["user"];
$password = $url["pass"];
$database = substr($url["path"], 1);
// . . .
'mysql' => array(
'driver' => 'mysql',
'host' => $host,
'database' => $database,
'username' => $username,
'password' => $password,
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),
他还说:
如果您真的在真实网站上工作,那么您应该确定 您只是专门为您的数据库编辑数据库凭据 生产环境
那么,在生产中如何配置环境变量以在heroku上使用cleardb
运行MySQL?
答案 0 :(得分:4)
Being tagged as Laravel 5.2, you need to set the environment variable in the .env
file. This file is not included in version control, because you are supposed to have different versions on each installation. A .env.example
is provided by default.
As an example, if your URL is:
CLEARDB_DATABASE_URL => mysql://adffdadf2341:adf4234@us-cdbr-east.cleardb.com/heroku_db?reconnect=true
then in your .env
file you can put:
DB_CONNECTION=mysql
DB_HOST=us-cdbr-east.cleardb.com
DB_PORT=3306
DB_DATABASE=heroku_db
DB_USERNAME=adffdadf2341
DB_PASSWORD=adf4234
and leave the config/database.php
untouched.
The other solution would be to define the URL above in the .env
file and parse it dynamically as suggested. Note that these variables are accessed using env("CLEARDB_DATABASE_URL")
.
EDIT
Since the CLEARDB_DATABASE_URL is set automatically, it will probably be better to make use of it.
// config/database.php
if ($url = env('CLEARDB_DATABASE_URL', false)) {
$parts = parse_url($url);
$host = $parts["host"];
$username = $parts["user"];
$password = $parts["pass"];
$database = substr($parts["path"], 1);
} else {
$host = env('DB_HOST', 'localhost');
$username = env('DB_USERNAME', 'forge');
$password = env('DB_PASSWORD', '');
$database = env('DB_DATABASE', 'forge');
}
// ...
'mysql' => [
'driver' => 'mysql',
'host' => $host,
'database' => $database,
'username' => $username,
'password' => $password,
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
],
答案 1 :(得分:0)
在Heroku上设置环境变量非常简单。 您可以使用Heroku CLI,如下所示: heroku config:设置CLEARDB_DATABASE_URL =“你的DB URL”
您还可以通过Heroku仪表板轻松配置环境变量。