{"id":39453991,"url":"https://github.com/discorgento/module-migrations","last_synced_at":"2026-01-18T04:32:51.375Z","repository":{"id":62550981,"uuid":"503014258","full_name":"discorgento/module-migrations","owner":"discorgento","description":"A dev-friendly approach to handle database updates in Magento 2 🧰","archived":false,"fork":false,"pushed_at":"2026-01-13T12:42:42.000Z","size":2265,"stargazers_count":24,"open_issues_count":0,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2026-01-13T15:39:31.777Z","etag":null,"topics":["database","developer-experience","hacktoberfest","magento","magento2","magento2-extension","magento2-extension-free"],"latest_commit_sha":null,"homepage":"https://packagist.org/packages/discorgento/module-migrations","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/discorgento.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-06-13T15:32:14.000Z","updated_at":"2026-01-13T12:42:45.000Z","dependencies_parsed_at":"2023-01-30T01:45:40.497Z","dependency_job_id":"1de564ac-b135-444d-abfa-e3b1645bc052","html_url":"https://github.com/discorgento/module-migrations","commit_stats":{"total_commits":40,"total_committers":1,"mean_commits":40.0,"dds":0.0,"last_synced_commit":"82a5323695b8d85ccb8f32a19005341090fbb510"},"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/discorgento/module-migrations","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/discorgento%2Fmodule-migrations","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/discorgento%2Fmodule-migrations/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/discorgento%2Fmodule-migrations/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/discorgento%2Fmodule-migrations/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/discorgento","download_url":"https://codeload.github.com/discorgento/module-migrations/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/discorgento%2Fmodule-migrations/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28529713,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T00:39:45.795Z","status":"online","status_checked_at":"2026-01-18T02:00:07.578Z","response_time":98,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["database","developer-experience","hacktoberfest","magento","magento2","magento2-extension","magento2-extension-free"],"created_at":"2026-01-18T04:32:51.277Z","updated_at":"2026-01-18T04:32:51.352Z","avatar_url":"https://github.com/discorgento.png","language":"PHP","readme":"![Discorgento Migrations](docs/header.png)\n\n\u003cp align=\"center\"\u003eA dev-friendly approach to keep track of database changes in Magento 2\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://github.com/discorgento/module-migrations/stargazers\" target=\"_blank\"\u003e\u003cimg alt=\"GitHub Stars\" src=\"https://img.shields.io/github/stars/discorgento/module-migrations?style=social\"/\u003e\u003c/a\u003e\n    \u003ca href=\"https://packagist.org/packages/discorgento/module-migrations/stats\" target=\"_blank\"\u003e\u003cimg alt=\"Total Downloads\" src=\"https://img.shields.io/packagist/dt/discorgento/module-migrations\"/\u003e\u003c/a\u003e\n    \u003ca target=\"_blank\" href=\"https://packagist.org/packages/discorgento/module-migrations\"\u003e\u003cimg src=\"https://img.shields.io/packagist/v/discorgento/module-migrations\" alt=\"Latest Version on Packagist\"\u003e\u003c/a\u003e\n    \u003ca target=\"_blank\" href=\"https://discorgento.com/discord\"\u003e\u003cimg alt=\"Join our Discord\" src=\"https://img.shields.io/discord/768653248902332428?color=%237289d9\u0026label=Discord\"/\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003eOur Sponsors\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://www.caravel.com.br/\"\u003e\u003cimg src=\"docs/sponsors/caravelx.svg\" alt=\"Caravel X\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n## Overview 💭\nJust 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](https://discorgento.com/discord) got you covered.\n\nProbably you already heard about [data patches](https://developer.adobe.com/commerce/php/development/components/declarative-schema/patches/), but what if I say that it can be really, really simplified?  \n\n![image](docs/tldr.png)\nFrom 50 lines to just 15, or simply 70% less code. SEVENTY percent fewer lines.\nBut we're just getting started.\n\n## Install 🔧\nThis module is compatible with both Magento 2.3 and 2.4, from PHP 7.3 to 8.3.\n```\ncomposer require discorgento/module-migrations:^2 \u0026\u0026 bin/magento setup:upgrade\n```\n\n## Usage 🥤\nQuick demo on how to use it:  \n\u003ca href=\"https://odysee.com/@discorgento:8/Introduction-to-Module-Migrations-Magento-discorgento-module-migrations:a\"\u003e\u003cimg src=\"https://user-images.githubusercontent.com/4603111/202745678-d9960d66-4618-4100-aee1-50a4cc728829.png\" height=\"200\"/\u003e\u003c/a\u003e  \n\u003e There's also an extended version in Brazillian Portuguese including CMS content management overview available [here](https://odysee.com/@discorgento:8/Introdu%C3%A7%C3%A3o-ao-Modulo-Migrations-Magento-discorgento-module-migrations:9).\n\nBesides simplifying the basic structure like showed before, we also provide some [facades](https://refactoring.guru/design-patterns/facade) to common tasks like handling [admin config](https://github.com/discorgento/module-migrations/wiki/Admin-Config), [product attributes](https://github.com/discorgento/module-migrations/wiki/Product-Attributes), [cms content](https://github.com/discorgento/module-migrations/wiki/Cms-Content) and [more](https://github.com/discorgento/module-migrations/wiki). As an example, you can use a snippet like this to create a whole new CMS Page, including Page Builder widgets on its content:\n\n```php\n\u003c?php declare(strict_types=1);\n/** Copyright © Your Company. All rights reserved. */\n\nnamespace YourCompany\\YourModule\\Setup\\Patch\\Data;\n\nuse Discorgento\\Migrations\\Setup\\Migration;\n\nclass CmsPageMyNewPage extends Migration\n{\n    private Migration\\Facade\\CmsPage $cmsPage;\n\n    public function __construct(\n        Migration\\Context $context,\n        Migration\\Facade\\CmsPage $cmsPage\n    ) {\n        parent::__construct($context);\n        $this-\u003ecmsPage = $cmsPage;\n    }\n\n    protected function execute()\n    {\n        $this-\u003ecmsPage-\u003ecreate('my-new-page', [\n            'title' =\u003e 'Lorem Ipsum',\n            'content' =\u003e \u003c\u003c\u003cHTML\n                \u003cspan\u003eHello World!\u003c/span\u003e\n            HTML,\n        ]);\n    }\n}\n```\n\nRun 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).\n\n\u003e **💡 Tip:**  Don't forget to check our [official wiki](https://github.com/discorgento/module-migrations/wiki) to make the most use of this powerful m2 tool!\n\n## Notes 🗒\n - roadmap: create cli command to generate migrations for existant cms content (thanks [@vpjoao98](https://github.com/vpjoao98));\n - issues and PRs are welcome in this repo;\n - we want **YOU** for [our community](https://discorgento.com/discord)!\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdiscorgento%2Fmodule-migrations","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdiscorgento%2Fmodule-migrations","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdiscorgento%2Fmodule-migrations/lists"}