sql >> Database >  >> RDS >> Mysql

Maak tegelijkertijd verbinding met veel databases in Laravel 5.2

Intro - 2 verbindingen

Ervan uitgaande dat je 2 verbindingen nodig hebt:standaard en aangepast , zou u hun configuratie in uw config/database.php zoals gewoonlijk, dan heb je nodig:

>>> DB::connection()->getDatabaseName()
=> "default"

>>> DB::connection('custom')->getDatabaseName()
=> "customized"

// change the config...
>>> config(['database.connections.custom.database' => 'new_customized_db'])
=> null

// ...but once the connection is already open, config change doesn't affect it...
>>> DB::connection('custom')->getDatabaseName()
=> "customized"

// ...so we need to get rid of existing connection completely (reconnect() won't work)
>>> DB::purge('custom')
=> null

>>> DB::connection('custom')->getDatabaseName()
=> "new_customized_db"

Meer verbindingen

Hierboven ziet u wat er moet gebeuren. In uw geval kunt u eenvoudig volledige verbindingsconfiguratie voor elke nieuwe verbinding die je nodig hebt, en het zal werken zoals verwacht:

>>> config(['database.connections.on_the_fly' => [
>>>    'database' => 'provided_on_the_fly',
>>>    ...
>>> ]])
=> null

>>> DB::connection('on_the_fly')->getDatabaseName()
=> "provided_on_the_fly"

Welsprekend

Als u een aangepaste verbinding wilt gebruiken voor uw Eloquent-modellen je kunt SomeModel::on('on_the_fly')->find($id) gebruiken (opgehaald model instantie zal de verbinding gebruiken voor alle volgende bewerkingen)




  1. MySQL standaard datum() + 14 dagen, voor een kolom?

  2. Postgresql SELECT willekeurig met unieke waarde

  3. SQL Hoe de SUM van kolom over groep in dezelfde tabel te updaten

  4. Kan PostgreSQL-rol niet verwijderen. Fout:`kan niet worden verwijderd omdat sommige objecten ervan afhankelijk zijn`