【问题标题】:How to use multiple DB connections using .env in Lumen 5.5..?如何在 Lumen 5.5.. 中使用 .env 使用多个数据库连接?
【发布时间】:2018-05-09 23:28:17
【问题描述】:

我已经安装了 Lumen 5.5 并配置了 .env :

APP_ENV=local
APP_DEBUG=true
APP_KEY=2gh4RD89kWa87clEs6Vhjso3XhsFo3dR
APP_TIMEZONE=UTC

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=XXXXXX
DB_USERNAME=XXXXXX
DB_PASSWORD=XXXXXX

CACHE_DRIVER=memcached
QUEUE_DRIVER=sync

并使用 Eloquent 创建了一个模型:

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Test extends Model {
    
    public $timestamps = false;
    protected $connection = 'foo';
}

现在官网没有在.env文件中配置多DB连接的文档。我的单一连接工作正常,但现在我需要添加另一个数据库连接详细信息。

到目前为止我已经尝试过什么:

  1. 创建的数据库配置文件为app/config/database.php,具有多个数据库详细信息,但无论我在该文件中写入什么内容,我的设置都不会受到影响。它只使用.env 来获取连接详细信息。

  2. 尝试在.env 文件中添加多个数据库连接详细信息,例如:

    DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=XXXXXX DB_USERNAME=XXXXXX DB_PASSWORD=XXXXXX

    FOO_DB_CONNECTION=mysql FOO_DB_HOST=127.0.0.1 FOO_DB_PORT=3306 FOO_DB_DATABASE=FOOXXXXXX FOO_DB_USERNAME=FOOXXXXXX FOO_DB_PASSWORD=FOOXXXXXX

    DB_CONNECTION_FOO=mysql DB_HOST_FOO=127.0.0.1 DB_PORT_FOO=3306 DB_DATABASE_FOO=FOOXXXXXX DB_USERNAME_FOO=FOOXXXXXX DB_PASSWORD_FOO=FOOXXXXXX

但它总是给我这个错误:

(1/1) InvalidArgumentException
Database [foo] not configured.

我已经尝试了在 Google 上找到的所有内容。

【问题讨论】:

  • 显示你的数据库配置文件。当然要删除敏感数据。
  • 他添加了环境细节,而不是数据库配置细节。 @Ritesh 请发布您的 database.php
  • 正如我在问题中提到的,config/database.php 对我不起作用。我是否创建此文件.. 我的项目运行相同。
  • @ayip 任​​何解决方案..??

标签: php eloquent lumen-5.5


【解决方案1】:

我在项目中的配置方式(在 Lumen 5.4 中)如下:

config/database.php

'pgsql' => [
        'driver'   => 'pgsql',
        'host'     => env('DB_HOST', 'db'),
        'port'     => env('DB_PORT', 5432),
        'database' => env('DB_DATABASE', 'service_db'),
        'username' => env('DB_USERNAME', 'service_user'),
        'password' => env('DB_PASSWORD'),
        'charset'  => env('DB_CHARSET', 'utf8'),
        'prefix'   => env('DB_PREFIX', ''),
        'schema'   => env('DB_SCHEMA', 'public'),
    ],

    'pgsql2' => [
        'driver'   => 'pgsql',
        'host'     => env('DB_HOST2', 'db'),
        'port'     => env('DB_PORT', 5432),
        'database' => env('DB_DATABASE2', 'service_db'),
        'username' => env('DB_USERNAME2', 'service_user'),
        'password' => env('DB_PASSWORD2'),
        'charset'  => env('DB_CHARSET', 'utf8'),
        'prefix'   => env('DB_PREFIX', ''),
        'schema'   => env('DB_SCHEMA2', 'public'),
    ],

我创建了 2 个具有 2 个不同名称的连接,每个连接指向 db 主机/数据库/用户名/密码/模式的不同环境变量。如果这没有帮助,请发布您的 database.php 文件。

【讨论】:

  • 我犯的愚蠢错误..被放置在应用程序文件夹中的配置文件夹..移出应用程序文件夹工作..!!谢谢..!!
猜你喜欢
  • 2016-01-27
  • 2018-01-25
  • 1970-01-01
  • 2021-03-04
  • 1970-01-01
  • 1970-01-01
  • 2022-12-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多