Php 如何使我在Heroku上的Laravel项目使用Heroku Postgres?

Php 如何使我在Heroku上的Laravel项目使用Heroku Postgres?,php,database,laravel,postgresql,heroku,Php,Database,Laravel,Postgresql,Heroku,我一直在做一个项目,需要我在Heroku建立它。到目前为止,我在本地使用的数据库是mySQL,但当项目在Heroku上时,我希望使用Postgre 我已经做了大量的搜索,但是对于如何配置我的Laravel项目来使用Postgres以及如何执行基本功能(例如向Postgres添加新数据库),我还没有找到答案 如果有另一种方法可以直接使用mySQL,那就太好了 感谢您的帮助。Heroku将(一旦您提供了Heroku Postgres实例)数据库凭据以以下格式放置在数据库URL环境变量中: postg

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

我已经做了大量的搜索,但是对于如何配置我的Laravel项目来使用Postgres以及如何执行基本功能(例如向Postgres添加新数据库),我还没有找到答案

如果有另一种方法可以直接使用mySQL,那就太好了

感谢您的帮助。

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

postgres://username:password@hostname:port/database
现在,您可以手动填写您的
DB\u主机
DB\u用户名
,等等
.env
变量,但是有一个更好的方法:您可以解析
配置/database.php
文件中的URL

'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_CONNECTION
设置为
pgsql
,以便使用此连接!)

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


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

旁注:如果要使用Postgres,也应该在本地使用—两者之间可能存在差异,因此您可能会发现某些迁移不起作用等。否则,MySQL数据库会有第三方Heroku提供程序。或者你可以旋转一个类似AWS RDS的实例,然后将你的配置指向它。太好了,谢谢你的帮助,我还有一个问题,database.php中已经有一个pgsql条目,我应该用你上面给我的连接替换它吗?@TimothyHayes,这取决于你。您可以创建一个名为
'heroku'
的新连接,而不是
'pgsql'
,并将
DB\u connection
设置为该连接。就我个人而言,我只是使用了一个,并将我的本地
.env
设置为具有包含我的本地主机设置的
数据库URL
设置。在此为所有问题的解决干杯: