Laravel migrate schema使用不同的库连接不生效, 模型还是读取的原来的配置。

laravel 使用不同的前缀连接模型。

数据库配置 config/database.php

 ...
 'connections' => [
        'mysql' => [
            'driver'         => 'mysql',
            'url'            => env('DATABASE_URL'),
            'host'           => env('DB_HOST', 'mysql'),
            'port'           => env('DB_PORT', '3306'),
            'database'       => env('DB_DATABASE', 'default'),
            'username'       => env('DB_USERNAME', 'root'),
            'password'       => env('DB_PASSWORD', 'xxx'),
            'unix_socket'    => env('DB_SOCKET', ''),
            'charset'        => 'utf8mb4',
            'collation'      => 'utf8mb4_unicode_ci',
            'prefix'         => env('DB_PREFIX', 'zbc_'),
            'prefix_indexes' => true,
            'strict'         => false,
            'engine'         => null,
            'options'        => extension_loaded('pdo_mysql') ? array_filter(
                [
                    PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
                ]
            ) : [],
        ],

        'mysql2' => [
            'driver'         => 'mysql',
            'url'            => env('DATABASE_URL'),
            'host'           => env('DB_HOST', 'mysql'),
            'port'           => env('DB_PORT', '3306'),
            'database'       => env('DB_DATABASE', 'default'),
            'username'       => env('DB_USERNAME', 'root'),
            'password'       => env('DB_PASSWORD', 'xxxxxx'),
            'unix_socket'    => env('DB_SOCKET', ''),
            'charset'        => 'utf8mb4',
            'collation'      => 'utf8mb4_unicode_ci',
            'strict'         => false,
            'engine'         => null,
        ],
    ]...

编写migrate 文件时添加connection 指定数据库配置连接。 database/migrations/2021_03_11_170106_test.php

       Schema::connection('mysql2')->table(
           'system_setting',
           function (Blueprint $table) {
                 $table->string('test', 300)->comment('测试')->nullable();
           }
       );

执行后如果发现读取不对,还是读的之前的mysql连接

  • 原因:config 缓存了之前的mysql配置
  • 解决:执行artisan 命令清除config配置缓存。
    php artisan config:clear
本作品采用《CC 协议》,转载必须注明作者和本文链接
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!