Discorgento Migrations
discorgento/module-migrations
A dev-friendly approach to keep track of database changes in Magento 2.
Build Tests
Code Quality
Tested on Magento 2.4.8-p3
Recent Test History
Each release is tested against the latest Magento version at that time.
+7 older tests
Top Contributors
View LeaderboardLooking for Contributors
Composer installation fails. Your contribution could help the entire Magento community!
Share This Module's Status
README
Loaded from GitHub
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?
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.