首页 > 解决方案 > Laravel 数据库在部署时出现护照错误

问题描述

我遇到以下错误:SQLSTATE[22023]: Invalid parameter value: 7 ERROR: invalid value for parameter "client_encoding": "utf8mb4" (SQL: select exists(select * from "oauth_personal_access_clients") as "exists")

$token = Auth::user()->createToken('api')->accessToken;

当然,我将 heroku 与 pgsql 以及我的数据库配置一起使用 =>

    'default' => env('DB_CONNECTION', 'pgsql'),

  'pgsql' => [
            'driver' => 'pgsql',
            'url' => env('DATABASE_URL'),
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '5432'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'charset' => 'utf8',
            'prefix' => '',
            'prefix_indexes' => true,
            'schema' => 'public',
            'sslmode' => 'prefer',
        ],

数据库工作正常,除了这种情况。

标签: laraveloauthlaravel-passport

解决方案


我已经解决了。在passport.php中

    /*
    |--------------------------------------------------------------------------
    | Passport Storage Driver
    |--------------------------------------------------------------------------
    |
    | This configuration value allows you to customize the storage options
    | for Passport, such as the database connection that should be used
    | by Passport's internal database models which store tokens, etc.
    |
    */

    'storage' => [
        'database' => [
            'connection' => env('DB_CONNECTION', 'mysql'),
        ],
    ],

];

我将其更改为:

  'connection' => env('DB_CONNECTION', 'pgsql'),

然后 php artisan 迁移。它有效!


推荐阅读