我试图加载特定站点的配置并通过自定义命令运行,但它无法运行。
这是我的代码。
$sites = Site::all();
foreach ($sites as $site) {
$this->info("Running migrations on Site: {$site->name}:{$site->id}");
config([
'database.'.env('DB_CONNECTION').'.database' => env('DB_DATABASE_'.$site->id),
'database.'.env('DB_CONNECTION').'.username' => env('DB_USERNAME_'.$site->id),
'database.'.env('DB_CONNECTION').'.password' => env('DB_PASSWORD_'.$site->id),
]);
Artisan::call("migrate", []);
}
我的envs是这样的,在末尾附加了ID
DB_DATABASE_1=db1
DB_USERNAME_1=root
DB_PASSWORD_1=
我一定是做错了什么。谁能帮帮我。
1条答案
按热度按时间p1iqtdky1#
你可以通过在你的env文件中做一些改变来动态地迁移表,就像我测试的那样。
并在您的config/database.php中添加多个数据库配置数组,只需更改 databasename**username 和 password,并保留其他配置选项。
并将其中任何一个设置为默认值,如
你将需要指定额外的数据库配置选项,在使用artisan命令迁移时,laravel会从config/database.php中查看该选项。
你可以用你的方法来迭代你的站点ID