更改Laravel Passport使用的SQL Server架构

时间:2017-10-04 10:15:01

标签: php laravel laravel-passport

一位同事(最近离职)已在我正在使用的网站上安装了Laravel Passport,该网站使用SQL Server,并在默认的dbo架构中创建了各种oauth_表。

但是,我们的数据库有许多模式,具体取决于表的用途,包括“安全性”,其中包含与auth内容相关的所有表。

我被要求进行更改,因此表格处于安全状态而不是dbo,但我无法弄清楚如何实现这一点。在护照模型文件中,只指定了一个表名,生成的迁移似乎也没有指定模式的选项。我无法在Passport文档中看到任何内容,以表明它是否可能。

有谁知道是否可以在非默认架构中使用护照?

1 个答案:

答案 0 :(得分:1)

您可以在database.php配置文件下配置不同模式的不同连接,然后在模型中指定$connection,例如:

    'sqlsrv1' => [
        'driver' => 'sqlsrv',
        'host' => env('DB_HOST', 'localhost'),
        'port' => env('DB_PORT', '3306'),
        'database' => env('DB_DATABASE', 'forge'),
        'username' => env('DB_USERNAME', 'forge'),
        'password' => env('DB_PASSWORD', ''),
        'charset' => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix' => '',
        'strict' => true,
        'engine' => null,
        'schema'   => 'schema_name1',
    ],


    'sqlsrv2' => [
        'driver' => 'sqlsrv',
        'host' => env('DB_HOST', 'localhost'),
        'port' => env('DB_PORT', '3306'),
        'database' => env('DB_DATABASE', 'forge'),
        'username' => env('DB_USERNAME', 'forge'),
        'password' => env('DB_PASSWORD', ''),
        'charset' => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix' => '',
        'strict' => true,
        'engine' => null,
        'schema'   => 'schema_name2',
    ],

然后在所需模型中设置$connection属性

 protected $connection = 'sqlsrv1';