首页 > 解决方案 > 如何让我在 Heroku 上的 Laravel 项目使用 Heroku Postgres?

问题描述

我一直在做一个需要我在 Heroku 中设置它的项目。到目前为止,我在本地使用的数据库是 mySQL,但是当项目在 Heroku 上时,我希望使用 Postgre。

我已经进行了大量搜索,但尚未找到关于如何配置我的 Laravel 项目以使用 Postgres 以及如何执行基本功能(例如向 Postgres 添加新数据库)的答案。

如果有另一种方法可以按原样使用 mySQL,那就太好了。

谢谢您的帮助。

标签: phpdatabaselaravelpostgresqlheroku

解决方案


DATABASE_URLHeroku 将数据库凭据放置在环境变量中(一旦您提供了 Heroku Postgres 实例) ,格式如下:

postgres://username:password@hostname:port/database

现在,您可以从这里手动填写您的DB_HOSTDB_USERNAME.env变量,但有更好的方法:您可以解析config/database.php文件中的 URL。

注意:较新版本的 Laravel 现在DATABASE_URL .env直接支持值。不再需要解析。

'pgsql' => [
    'driver' => 'pgsql',
    'host' => parse_url(env('DATABASE_URL'), PHP_URL_HOST),
    'port' => parse_url(env('DATABASE_URL'), PHP_URL_PORT),
    'database' => ltrim(parse_url(env('DATABASE_URL'), PHP_URL_PATH), '/'),
    'username' => parse_url(env('DATABASE_URL'), PHP_URL_USER),
    'password' => parse_url(env('DATABASE_URL'), PHP_URL_PASS),
    'charset' => 'utf8',
    'prefix' => '',
    'schema' => 'public',
    'sslmode' => 'prefer',
],

(确保您设置DB_CONNECTIONpgsql使用此连接!)

如何执行基本功能,例如向 Postgres 添加新数据库

你没有。Heroku Postgres 实例带有一个数据库。


推荐阅读