📊 State of Magento 2025

The Home for Magento 2 Excellence

Quality-tested Magento 2 modules. Explore. Evaluate. Elevate. #magento2

606 Modules
385 Ready
218 Need Help
🏆 Leaderboard
Actively Maintained v2.8.0

Discorgento Migrations

discorgento/module-migrations

A dev-friendly approach to keep track of database changes in Magento 2.

13,247
Downloads
Below average
24
GitHub Stars
Below average
2d ago
Last Release
0
Open Issues
Build Issues
0/3 checks passed

Build Tests

Composer Install
DI Compile
Templates

Code Quality

CS Coding Standard
PHPStan Failed

Tested on Magento 2.4.8-p3

Recent Test History

Each release is tested against the latest Magento version at that time.

v2.8.0 on Magento 2.4.8-p3
Jan 14, 2026
v2.7.0 on Magento 2.4.8-p3
Dec 15, 2025
v2.7.0 on Magento 2.4.8-p2
Nov 23, 2025
v2.6.0 on Magento 2.4.8-p2
Aug 14, 2025
v2.6.0 on Magento 2.4.8
May 17, 2025
v2.6.0 on Magento 2.4.7-p4
Feb 15, 2025

+7 older tests

Looking for Contributors

Composer installation fails. Your contribution could help the entire Magento community!

Contribute

Share This Module's Status

Discorgento Migrations Magento compatibility status badge

README

Loaded from GitHub

Discorgento Migrations

Overview 💭

Just changed something on the admin panel or on the database and now you need to replicate it again in staging and production? No worries, we got you covered.

Probably you already heard about data patches, but what if I say that it can be really, really simplified?

image From 50 lines to just 15, or simply 70% less code. SEVENTY percent fewer lines. But we're just getting started.

Install 🔧

This module is compatible with both Magento 2.3 and 2.4, from PHP 7.3 to 8.3.

composer require discorgento/module-migrations:^2 && bin/magento setup:upgrade

Usage 🥤

Quick demo on how to use it:

There's also an extended version in Brazillian Portuguese including CMS content management overview available here.

Besides simplifying the basic structure like showed before, we also provide some facades to common tasks like handling admin config, product attributes, cms content and more. As an example, you can use a snippet like this to create a whole new CMS Page, including Page Builder widgets on its content:

<?php declare(strict_types=1);
/** Copyright © Your Company. All rights reserved. */

namespace YourCompany\YourModule\Setup\Patch\Data;

use Discorgento\Migrations\Setup\Migration;

class CmsPageMyNewPage extends Migration
{
    private Migration\Facade\CmsPage $cmsPage;

    public function __construct(
        Migration\Context $context,
        Migration\Facade\CmsPage $cmsPage
    ) {
        parent::__construct($context);
        $this->cmsPage = $cmsPage;
    }

    protected function execute()
    {
        $this->cmsPage->create('my-new-page', [
            'title' => 'Lorem Ipsum',
            'content' => <<<HTML
                <span>Hello World!</span>
            HTML,
        ]);
    }
}

Run a bin/magento setup:upgrade, navigate to the /my-new-page path, and that's it. And naturally as this is part of the deployment of new releases of your store, it will be automatically replicated in your integration/staging/production/whatever environments (and even your coworkers machines).

💡 Tip: Don't forget to check our official wiki to make the most use of this powerful m2 tool!

Notes 🗒

  • roadmap: create cli command to generate migrations for existant cms content (thanks @vpjoao98);
  • issues and PRs are welcome in this repo;
  • we want YOU for our community!

This content is fetched directly from the module's GitHub repository. We are not the authors of this content and take no responsibility for its accuracy, completeness, or any consequences arising from its use.