如何使用Lumen 5.5中的.env使用多个DB连接..



我已经安装了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

并使用雄辩创建了一个模型:

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

现在,官方站点上没有文档来配置.env文件中的多个DB连接。我的单个连接正常工作,但是现在我需要添加另一个DB连接详细信息。

我到目前为止尝试过的是:

  1. 创建的DB Config File作为app/config/database.php具有多个DB详细信息,但我的设置不会受到我在该文件中写的任何内容的影响。它仅使用.env获取连接详细信息。

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

    db_connection = mysqldb_host = 127.0.0.1db_port = 3306db_database = xxxxxxdb_username = xxxxxxdb_password = xxxxxx

    foo_db_connection = mysqlfoo_db_host = 127.0.0.1foo_db_port = 3306foo_db_database = fooxxxxxxfoo_db_username = fooxxxxxxfoo_db_password = fooxxxxxx

    db_connection_foo = mysqldb_host_foo = 127.0.0.1db_port_foo = 3306db_database_foo = fooxxxxxxdb_username_foo = fooxxxxxxdb_password_foo = fooxxxxxx

,但它一直给我这个错误:

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

我尝试了我在Google上发现的所有内容。

我在项目中配置的方式(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个不同的名称,每个连接点与数据库主机/数据库/用户名/密码/架构的不同ENV变量。如果这无济于事,请发布您的database.php文件。

相关内容

  • 没有找到相关文章

最新更新