我正在使用Laravel 4创建一个多租户应用程序。目前我的数据库中有两个连接.php
'connections' => array(
'app' => array(
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'homestead',
'username' => 'homestead',
'password' => 'secret',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),
'tenant' => array(
'driver' => 'mysql',
'host' => 'localhost',
'database' => '',
'username' => '',
'password' => '',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
)
当连接到应用程序中的租户数据库时,我会调用以下内容:
$tenant = Tenant::where('username', '=', $username)->first();
Config::set('database.connections.tenant.username', $tenant->db_username);
Config::set('database.connections.tenant.password', $tenant->db_password);
Config::set('database.connections.tenant.database', $tenant->db_database);
正如您所看到的,我的所有数据库名称/租户的连接详细信息都是动态设置的。 当我尝试运行迁移时,这是一个问题,因为我无法找到设置连接详细信息的方法。
目前我能做到这一点的唯一方法是从控制器调用我的迁移。他们是更好的方式吗?