문제

The official docs say this.

Revertable data patch - A patch that can be reverted as a module or patch is uninstalled or deleted.

I know that Revertable patches must implement Magento\Framework\Setup\Patch\PatchRevertableInterface and when a module is un-installed the logic in the revert() method is called.

How can one revert a Patch without uninstalling the module

도움이 되었습니까?

해결책

Apparently the docs are incorrect|confusing. There is another page in the docs that clearly states

Magento does not allow you to revert a particular module data patch

다른 팁

vitoriodachef is indeed correct, unfortunately there is no CLI command available to undo a data patch.

Depending on what kind of data patch you have made the quickest way is to call the revert() function from your patch:

//..patch class

    public function apply(): void
    {
        $this->revert();
        return; // (optional, to only execute revert and not patch)

        //...your patch code
    }

    public function revert(): void
    {
        //...your revert code
    }

If you have already executed your patch before then run the following query so that when you run bin/magento setup:upgrade --keep-generated your patch is executed again

DELETE FROM patch_list 
    WHERE patch_name LIKE '%Vendor\Module%' 
    ORDER BY patch_id DESC 
    LIMIT 1;
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 magento.stackexchange
scroll top