Насколько я знаю, нет прямой forward для запуска миграции для всех плагинов. Однако для этого можно создать простой скрипт Shell.
Вы можете получить список всех загруженных плагинов для приложения с помощью: -
$plugins = Plugin::loaded();
Вы можете затем запустить миграцию для каждого плагина, используя dispatchShell
, который позволяет запускать команду из другого Shell: -
$this->dispatchShell(
'migrations',
'migrate',
'-p',
$plugin
);
Каждый аргумент для миграции передается в качестве аргумента dispatchShell
.
Таким образом, поставив все вместе в сценарий оболочки: -
<?php
// src/Shell/InstallShell.php
namespace App\Shell;
use Cake\Console\Shell;
use Cake\Core\Plugin;
class InstallShell extends Shell
{
public function plugins()
{
$plugins = Plugin::loaded();
foreach ($plugins as $plugin) {
$this->dispatchShell(
'migrations',
'migrate',
'-p',
$plugin
);
}
}
}
Этот сценарий будет называться как $ bin/cake install plugins
.
Просто вручную перебирать плагинов, которые нуждаются в миграции для запуска в вашем deploy.sh скрипта и т.д. – mark