Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

McGreeb's avatar

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?

0 likes
0 replies

Please or to participate in this conversation.