2017-09-03 3 views
0

J'utilise actuellement Laravel 5.4. J'ai une base de données séparée par client. Je voudrais exécuter des migrations de base de données dans toutes mes bases de données client. Les noms des bases de données sont au format clientdb_ {clientid}. Je l'ai essayé d'utiliserLaravel Procédure de migration de base de données

Config::set("database.connections.mysql", ["database" => 
"clientdb_".$client['id'], 
"username" => "root","password" => ""]); 

$this->callSilent('migrate', 
[ '--path' => 'database/migrations/clients','--database'=>'clientdb_'.$client['id']]); 

mais j'obtiens exception appelée

[InvalidArgumentException] Base de données [clientdb_1] pas configuré.

Répondre

0

On dirait que la base de données n'est pas configuré dans votre config/database.php fichier

+0

ouais j'ai configuré un db permanent dans env et database.php. mais ce sont db runtime je voudrais accéder. comment rendre possible @Abhishek Vyas – ganesh

1

Le code vous montrer est la configuration de la connexion étiquetée mysql. Je pense que ce que vous essayez vraiment de faire est de configurer une nouvelle connexion de base de données appelée clientdb_1:

Config::set("database.connections.clientdb_" . $client['id'], [ 
    "database" => "clientdb_" . $client['id'], 
    "username" => "root", 
    "password" => "" 
]); 
+0

dans le pilote mysql j'ai configuré le db appelé syncclient. mais je voudrais accéder dynamiquement en utilisant config :: set aremy clientdb's – ganesh

+0

@ganesh Désolé, je ne comprends pas. Est-ce une nouvelle question? Est-ce que ma réponse aide à la question que vous avez posée initialement? –

+0

c'est la même question. scenario :: J'ai 1db par client. je veux accéder à la base de données client sans la configurer dans le fichier config/database.php je voudrais accéder à toute la base de données est là de toute façon ??? – ganesh