php - 如何配置 Laravel 应用程序以使用 heroku PostgreSQL hobby dev?

标签 php postgresql laravel heroku

我目前正在从事 Laravel 项目。默认数据库连接指向 mySQL 驱动程序。如何将驱动程序更改为 Postgres 并使用 heroku 提供的凭据?

最佳答案

首先,在数据库配置文件的顶部添加以下代码。

$host = env('DB_HOST', '127.0.0.1');
$database = env('DB_DATABASE', '');
$username = env('DB_USERNAME', 'forge');
$password = env('DB_PASSWORD', 'forge');


if($databaseUrl = getenv('DATABASE_URL')) {

    $url = parse_url($databaseUrl);

    $host = $url['host'];
    $username = $url['user'];
    $password = $url['pass'];
    $database = substr($url['path'], 1);
}

现在在同一个文件中像这样更改 pgSQL 键的值,

'pgsql' => [
            'driver' => 'pgsql',
            'host' => $host,
            'port' => env('DB_PORT', '5432'),
            'database' => $database,
            'username' => $username,
            'password' => $password,
            'charset' => 'utf8',
            'prefix' => '',
            'schema' => 'public',
            'sslmode' => 'prefer',
        ]

现在登录到您的 heroku 帐户,在项目的设置选项卡下添加两个配置变量,

  1. 键:DATABASE_URL 和值:heroku 在创建 hobby dev 实例时提供的连接字符串
  2. 键:DB_CONNECTION 和值:pgsql

关于php - 如何配置 Laravel 应用程序以使用 heroku PostgreSQL hobby dev?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45488070/

相关文章:

php - 我们可以在 Laravel 中创建一个 "Class Level Relationship"而不是 "Object Level Relationship"吗?

php - MySQL全连接三表

php - Paypal 金库卡数据重复

postgresql - Postgres 中的位掩码

ruby-on-rails - 查看当前时间是否在两个时间之间

php - Laravel 从所有 View 访问数据

laravel - polymer 模板 : How to load components into a specific layout

php - 将在本地工作但不在域中工作的当前日期添加小时数

php - 如何向 yii2 添加条件取决于 AppAsset 类?

使用 pg_dump 创建的普通 .sql 文件的 PostgreSQL search_path 问题