mysql - 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=
解决方案
运行migrate:generate
,然后将您的DB_CONNECTION
环境变量更新为mysql2
并再次运行它。
不要在 .env 文件中放置重复的键。在您的配置文件中,您_2
为第二个连接的 env 变量添加了后缀,但您没有在 .env 中使用该后缀。
如果您希望所有环境都使用两个数据库,则必须在第二个数据库的迁移和模型中手动插入连接名称。
推荐阅读
- arrays - 即使在快速更改值之后也将文本字段值分配给数组
- python - 将音乐文件添加到 Python exe 中
- reactjs - 未处理的拒绝(TypeError):props.prices 不是函数
- javascript - 使用条件Javascript循环遍历arrayObjects
- google-chrome - 通过 Chrome 开发者控制台在页面上注入时,SheetJS 不会初始化
- c - 编程 c 浮点定义
- php - codewars kata“它们是否相同”的解决方案工作不正常(php)
- ms-access - Dlookup将数字作为文本返回
- java - 这个算法只有一种情况,但我发现了最好和最坏的情况。有人可以解释我做错了什么吗?
- scala - Scala spark:从模式中提取列