我在mysql上将我的数据库分为两个数据库,我想从laravel上的两个数据库生成迁移。我做了所有的配置,但是当我执行命令“php artisanmigrate:generate“它只为第一个数据库创建迁移。有人知道如何创建这两个数据库的迁移吗?
感谢您的帮助:)
我的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=
3条答案
按热度按时间rryofs0p1#
如果您希望迁移2数据库,那么您可以在
.env
使用运行第一次迁移php artisan migrate
```DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=evamesure
DB_USERNAME=root
DB_PASSWORD=
eivgtgni2#
我不知道如何生成迁移,但在编写迁移时,可以指定要在其上运行迁移的连接:
这将允许您为不同的数据库使用不同的表。如果希望两个数据库中的表相同,可以采用相同的方法:
不要忘记,如果希望某个模型使用非默认连接,则需要在模型中指定相关连接:
q9yhzks03#
跑
migrate:generate
,然后更新DB_CONNECTION
环境变量到mysql2
再运行一次。不要在.env文件中放置重复的密钥。在配置文件中添加后缀
_2
到第二个连接的env变量,但在.env中没有使用该后缀。如果希望所有环境都使用两个数据库,则必须在第二个数据库的迁移和模型中手动插入连接名称。