gpt4 book ai didi

cakephp - 如何在 cakephp 3 中运行所有插件的所有迁移?

转载 作者:行者123 更新时间:2023-12-04 21:07:31 27 4
gpt4 key购买 nike

我知道我可以运行 bin/cake Migrations migrate --plugin MyPlugin

但是我在我的项目中使用了 50 多个插件并且我喜欢使用一个命令在所有插件中运行所有迁移这可能吗?

最佳答案

据我所知,没有用于为所有插件运行迁移的直接命令。但是,您可以组合一个简单的 Shell 脚本来执行此操作。

您可以使用以下方法检索应用程序的所有已加载插件的列表:-

$plugins = Plugin::loaded();

然后,您可以使用 dispatchShell 为每个插件运行迁移。它允许您从另一个 Shell 运行命令:-
$this->dispatchShell(
'migrations',
'migrate',
'-p',
$plugin
);

迁移的每个参数都作为参数传递给 dispatchShell .

所以,把所有这些放在一个 Shell 脚本中:-
<?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 .

关于cakephp - 如何在 cakephp 3 中运行所有插件的所有迁移?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42051557/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com