首页 > 解决方案 > Laravel:从 2 个 MySQL 数据库生成迁移

问题描述

我在 MySQL 上将我的数据库划分为 2 个数据库,我想从 laravel 上的两个数据库生成迁移。我进行了所有配置,但是当我执行命令“php artisan migrate:generate”时,它只为第一个数据库创建迁移。有谁知道如何创建 2 个数据库的迁移?

谢谢你的帮助 :)

我的 config/database.php 文件

'mysql' => [
        'driver' => 'mysql',
        'host' => env('DB_HOST', '127.0.0.1'),
        'port' => env('DB_PORT', '3306'),
        'database' => env('DB_DATABASE', 'forge'),
        'username' => env('DB_USERNAME', 'forge'),
        'password' => env('DB_PASSWORD', ''),
        'unix_socket' => env('DB_SOCKET', ''),
        'charset' => 'utf8mb4',
        'collation' => 'utf8mb4_unicode_ci',
        'prefix' => '',
        'strict' => false,
        'engine' => 'InnoDB ROW_FORMAT=DYNAMIC' ,
    ], 

'mysql2' => [
        'driver' => 'mysql',
        'host' => env('DB_HOST_2', '127.0.0.1'),
        'port' => env('DB_PORT_2', '3306'),
        'database' => env('DB_DATABASE_2', 'forge1'),
        'username' => env('DB_USERNAME_2', 'forge1'),
        'password' => env('DB_PASSWORD_2', ''),
        'unix_socket' => env('DB_SOCKET_2', ''),
        'charset' => 'utf8mb4',
        'collation' => 'utf8mb4_unicode_ci',
        'prefix' => '',
        'strict' => false,
        'engine' => 'InnoDB ROW_FORMAT=DYNAMIC' ,
    ],

我的 .env 文件

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=evamesure
DB_USERNAME=root
DB_PASSWORD=

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=evamesure1
DB_USERNAME=root
DB_PASSWORD=

标签: mysqllaravel

解决方案


运行migrate:generate,然后将您的DB_CONNECTION环境变量更新为mysql2并再次运行它。

不要在 .env 文件中放置重复的键。在您的配置文件中,您_2为第二个连接的 env 变量添加了后缀,但您没有在 .env 中使用该后缀。


如果您希望所有环境都使用两个数据库,则必须在第二个数据库的迁移和模型中手动插入连接名称。


推荐阅读