swisscom/commandmigration

Neos Flow 框架的 CLI 命令迁移的包

1.1.1 2022-10-10 05:00 UTC

This package is auto-updated.

Last update: 2024-08-30 08:41:01 UTC


README

Neos Flow 框架的 CLI 命令迁移的包。

该包允许创建类似于 Doctrine 迁移的迁移脚本。与执行 SQL 语句不同,它允许您定义包含一系列 Flow CLI 命令的版本。这些命令在通过命令 ./flow commandmigration:migrate 运行迁移时执行。

这主要解决了在分布式环境以及不同的预发布环境中执行一次性命令的问题。如果没有这个包,这些一次性命令可能需要在需要时手动执行,或者作为您部署过程中某些其他脚本的一部分。有了这个包,这成为了代码库的一部分。为了集成,可以将迁移命令添加到您的部署策略中,就像 ./flow doctrine:migrate 命令可能已经做的那样。

用法

创建迁移

要创建迁移,请从 AbstractMigration 继承,遵循命名约定 VersionYmdHis 并实现 up() 方法。该类必须在 Swisscom\CommandMigration 命名空间内,并存储在您的包下的 Migrations/Command/ 中。

示例迁移 Packages/Your.Package/Migrations/Command/Version20200220114245.php

<?php
namespace Swisscom\CommandMigration;

/**
 * A test migration
 */
class Version20200220114245 extends AbstractMigration
{

    /**
     * @return void
     */
    public function up(): void
    {
        $this->addCommand('your:command', ['test' => true]);
    }
}

执行命令

提供的命令遵循熟悉的 Doctrine 命令的命名,并以类似的方式工作

注意

该包高度灵感来源于 Flow Doctrine 迁移和 Flow 代码迁移。一些逻辑、语义以及代码是从这些核心模块借用的。