多数据库迁移 - 如何设置连接详细信息

时间:2014-06-28 13:01:55

标签: laravel laravel-4 migration database-connection multi-tenant

我正在使用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);

正如您所看到的,我的所有数据库名称/租户的连接详细信息都是动态设置的。 当我尝试运行迁移时,这是一个问题,因为我无法找到设置连接详细信息的方法。

目前我能做到这一点的唯一方法是从控制器调用我的迁移。他们是更好的方式吗?

0 个答案:

没有答案