我已经安装了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连接详细信息。
我到目前为止尝试过的是:
创建的DB Config File作为
app/config/database.php
具有多个DB详细信息,但我的设置不会受到我在该文件中写的任何内容的影响。它仅使用.env
获取连接详细信息。尝试在
.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文件。