Há um problema principal com o método que você está seguindo:
Você não inicializou nenhum objeto de configuração. Lumen, por padrão, não tem um conjunto de objetos de configuração tradicional, até que você crie um
config
diretório em sua pasta raiz. Conforme escrito nos documentos de configuração do Lumen:
Todas as opções de configuração da estrutura Lumen são armazenadas no arquivo .env.
A abordagem que você está procurando requer o objeto de configuração tradicional usado no Laravel.
Para obter esse objeto e seu novo
retail_db
conexão de banco de dados funcionando: - Crie uma
config
pasta na raiz do seu projeto - Copie o arquivo
vendor/laravel/lumen-framework/config/database.php
para esta pasta de configuração - Inicie o objeto de configuração do banco de dados em seu
bootstrap/app.php
com$app->configure('database');
(coloque na linha 28)
Sua estrutura de pastas está assim agora:
├── app
├── bootstrap
├── config
└── database.php
├── database
├── public
├── resources
├── storage
├── tests
└── vendor
Claro que você pode remover as conexões que você não precisa do array de conexões em
app/config/database.php
comentando ou removendo-os completamente. app/config/database.php
'connections' => [
/*'testing' => [
'driver' => 'sqlite',
'database' => ':memory:',
],*/
'sqlite' => [
'driver' => 'sqlite',
'database' => env('DB_DATABASE', base_path('database/database.sqlite')),
'prefix' => env('DB_PREFIX', ''),
],
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', 3306),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => env('DB_CHARSET', 'utf8'),
'collation' => env('DB_COLLATION', 'utf8_unicode_ci'),
'prefix' => env('DB_PREFIX', ''),
'timezone' => env('DB_TIMEZONE', '+00:00'),
'strict' => env('DB_STRICT_MODE', false),
],
]
Seu bootstrap/app.php com as mudanças:
/*
|--------------------------------------------------------------------------
| Create The Application
|--------------------------------------------------------------------------
|
| Here we will load the environment and create the application instance
| that serves as the central piece of this framework. We'll use this
| application as an "IoC" container and router for this framework.
|
*/
$app = new Laravel\Lumen\Application(
realpath(__DIR__.'/../')
);
//$app->withFacades();
// $app->withEloquent();
$app->configure('database');
Agora você pode usar o código que já tem em seu
routes.php
. Para excluir seu
retail_db
conexão, basta configurá-la para null
:$config->set('database.connections.retail_db', null);