Jun 8, 2017
0
Level 1
Changing laravel database connection information on Google app engine
Hey there, I am currently building a multi-tenanted app using laravel, I want to be able to switch the database biased on the current tenant. I can get it working fine in my local development environment, but as soon as I deploy it to google app engine I get issues.
Sample code:
$defaultusers = User::all();
$defaultconfig = config('database.connections.subdomain');
\Config::Set(['database.connections.subdomain.username' => 'username']);
\Config::Set(['database.connections.subdomain.password' => 'password']);
\Config::Set(['database.connections.subdomain.port' => '3306']);
\Config::Set(['database.connections.subdomain.database' => 'db1']);
\DB::connection()->reconnect();
$db1users = User::all();
$db1config = config('database.connections.subdomain');
\Config::Set(['database.connections.subdomain.username' => 'username']);
\Config::Set(['database.connections.subdomain.password' => 'password']);
\Config::Set(['database.connections.subdomain.port' => '3306']);
\Config::Set(['database.connections.subdomain.database' => 'db2']);
\DB::connection()->reconnect();
$db2users = User::all();
$db2config = config('database.connections.subdomain');
This code works perfectly under my local development environment.
But once I deploy it to google app engine It gets stuck at the first "\DB::connection()->reconnect();" line. constantly connecting and disconnecting from the database.
here is a sample from the logs:
A 2017/06/08 16:37:41 New connection for "sqlinstancename"
A 2017/06/08 16:37:42 Instance sqlinstancename closed connection
A 2017/06/08 16:37:42 New connection for "sqlinstancename"
A 2017/06/08 16:37:42 Instance sqlinstancename closed connection
A 2017/06/08 16:37:42 New connection for "sqlinstancename"
A 2017/06/08 16:37:42 Instance sqlinstancename closed connection
A 2017/06/08 16:37:42 New connection for "sqlinstancename"
A 2017/06/08 16:37:42 Instance sqlinstancename closed connection
A 2017/06/08 16:37:42 New connection for "sqlinstancename"
A 2017/06/08 16:37:42 Instance sqlinstancename closed connection
A 2017/06/08 16:37:42 New connection for "sqlinstancename"
A 2017/06/08 16:37:42 Instance sqlinstancename closed connection
A 2017/06/08 16:37:42 New connection for "sqlinstancename"
A 2017/06/08 16:37:42 Instance sqlinstancename closed connection
A 2017/06/08 16:37:42 New connection for "sqlinstancename"
A 2017/06/08 16:37:42 Instance sqlinstancename closed connection
A 2017/06/08 16:37:42 New connection for "sqlinstancename"
A 2017/06/08 16:37:42 Instance sqlinstancename closed connection
A 2017/06/08 16:37:42 New connection for "sqlinstancename"
A 2017/06/08 16:37:42 Instance sqlinstancename closed connection
A 2017/06/08 16:37:42 New connection for "sqlinstancename"
A 2017/06/08 16:37:42 Instance sqlinstancename closed connection
A 2017/06/08 16:37:42 New connection for "sqlinstancename"
A 2017/06/08 16:37:42 Instance sqlinstancename closed connection
A 2017/06/08 16:37:42 New connection for "sqlinstancename"
A 2017/06/08 16:37:42 Instance sqlinstancename closed connection
any ideas what might be casing this weird issue?
Please or to participate in this conversation.