n98-magerun release 1.99.0 – Fix for autoloader bug / Support for developer mode

We released today n98-magerun version 1.99.0. The release contains one important bugfix which solves autoloading issues introduced with V1.98.0.
The new release contains one new feature. It is now possible to run n98-magerun in Magento Developer Mode by adding the global option “–developer-mode” to a call.

  • Fix: Fatal error w/ Magento Composer Installer (by Luke Rodgers and Tom Klingenberg, #938)
  • Remove PHP 5.3 after travis ended support (by Christian Münch, #941)
  • Support for Magento developer mode (by Luke Rodgers, #940)

Major Break in next n98-magerun2 version / Config-Commands

According to the new native config:set command in the upcoming Magento 2.2 version we need to rename our n98-magerun2 command “config:set” to “config:store:set”.
We also rename the “config:delete” and “config:get” commands to have a consistent names.

Please note that you have to change custom scripts using “config:set”, “config:get” and “config:delete” to be compatible with the next n98-magerun2 release.

Further informations about the Magento 2.2 changes can be found in the developer docs:


n98-magerun 1/2 Release Bundle


We are happy to announce two new n98-magerun releases. It is the first time we release both Versions at once.
Both versions contain new features and a ton of bug fixes. With the future releases we try to mainline the code of both repositories. Our “gatekeeper” Tom Klingenberg is responsible for this.

Changelog n98-magerun1 (Version 1.98.0)

  • Fix: Borken image badge in readme (by Tom Klingenberg)
  • Fix: Check Suhosin phar support (report by Decorate, fix by Tom Klingenberg, #926)
  • Fix: File hash is optional in package.xml (report by Viktor Szépe, fix by Tom Klingenberg, #927)
  • Fix: Show full path for phpstorm autocompletion folder (by Carlos Reynosa, #922)
  • Fix: Enterprise Edition detection / enabling commands (report by Luke Rodgers, fix by Tom Klingenberg, #902)
  • Fix: Nonexistent class reference in config (by Tom Klingenberg)(by Chris Potter, #909)
  • Fix: File integrity checking guide (by Max Chadwick, #896)
  • Fix: Prevent sys:setup:run from ending script (report by Tjerk Ameel, #895)
  • Fix: Updates script command to have non-zero exit code
  • Fix: Remove duplicate entry in config.yaml (by Alexander Menk, #914)
  • Fix: Restore historic packages for install command (by Tom Klingenberg)
  • Fix: Compatibility for installed Symfony 3 components (by Christian Münch)
  • Fix: Update readme (by Goose)
  • New: Add package magento-mirror- (by Peter O’Callaghan, #894)
  • New: Add current Magento version (by Jonas Hüning, #920)
  • New: Add current Magento version (by Will-B, #930)
  • New: Check Suhosin phar support (by Tom Klingenberg, #926)
  • New: New commands to clear media and css cache (by Christian Münch, #932)
  • New: Streamlining of N98-Magerun1 and N98-Magerun2 (by Tom Klingenberg)

New Commands

Changelog n98-magerun2 (Version 1.6.0)

  • Feature: Add Magento Open Source Edition 2.1.8 (by Alexander Menk)
  • Feature: App state injection support in sys:check command (by Manuel Schmid / Christian Münch)
  • Feature: Improve db:dump command (by Scott Buchanan, #303 #304)
  • Fix: GMT timestamps for Magento 2.2.0 (by Tom Klingenberg, #296)
  • Fix: Typo in install command (by Tom Klingenberg / Tim Neutken, #297)
  • Fix: Typo in readme (Chris Orlando, #301)

Area Code Injection for sys:check

It is now possible to have check commands for different app areas. Before the change all checks was running in “adminhtml” area. Sometimes we need a check for e.g. the frontend or other areas. This is now possible. The commands are now running in area context.

To define a specific area in your check you must implement the new \N98\Magento\Framework\AreaAware interface.
The interface contain only a method which returns the name of the area.


n98-magerun2 1.5.0 is available

Hi everyone,

after our last release before Magento Imagine 2017 we are back again with a new release for you guys.
The new release contains one new command and some ports of n98-magerun1 features to existing n98-magerun2 commands.
Also we fixed some bugs related to the DB logic or improved the developer console.

New Command index:trigger:recreate

The new command is handy to recreate triggers on the fly. If you are not familiar with the new index logic: If you change the index mode of an indexer in Magento 2 the system will create DB triggers on the fly.
If one of the “mview.xml” files is changed the triggers should be regenerated. Why do we need this command? With this command you can force to regenerate the triggers during develpment. It is not needed to wait for a cronjob which triggers the regeneration. Also there are some edgecases. A trigger is assigned to the DB user who created the trigger. It this user will be removed from the system the trigger is in an invalid state. With the new command you are able to recreate the triggers with the new user so that the trigger are can work again.

Developer Console

Are you a fan of the dev:console command and the useful “make” commands? If yes, you should know Jacques Bodin-Hullin,
He is a smart guy and had the initial idea of the stateful commands. The n98-magerun2 commands are a clone of the great Installer tool features.

Thanks Jacques!


The release contains a lot of refactoring work under the hood by Tom Klingenberg. He is currently streamlining some utility classes so that we can share the code between n98-magerun1 and n98-magerun2. Thanks Tom!

Complete Changelog

  • Fix: Add Phar checksum guide to readme (report by Max Chadwick, fix by Tom Klingenberg, #279)
  • Fix: Prevent exceptions in dev:console from being suppressed and hidden (by Jason Woods, #282)
  • Fix: Sync optimize() with Magerun1 (by Alexander Menk, #291)
  • Fix: Updates script command to have non-zero exit code (by Christian Münch)
  • Fix: customer:create shows incorrect notice (by Christian Münch, #289)
  • Imp: Streamline db:dump with Magerun (by Tom Klingenberg)
  • Imp: Optimize description of –add-time option (by Christian Münch, #281)
  • New: Add current Magento2 versions (by Kristof Ringleff, #292)
  • New: Port db:dump –exclude from Magerun 1 (by Torrey Tsui, #294)
  • New: Command index:trigger:recreate (by Christian Münch)




Our Magento Imagine gift: n98-magerun2 version 1.4.0 is out!

Like promised in a tweet we deployed the stable version of n98-magerun2 before the start of Magento Imagine 2017. The new release contains five new commands and some bugfixes.


List EAV attributes

My colleague Jürgen Thelen ported two Magerun 1 commands to V2. One of it is “eav:attribute:list” which can give you a list of all your EAV attibutes.

n98-magerun2.phar eav:attribute:list

The output is a list of attributes which can filtered by entity type.

n98-magerun2.phar eav:attribute:list –add-source –add-backend –filter-type=customer

Clear your asset cache

The second command ported by Jürgen is to clear static assets.

n98-magerun2.phar dev:asset:clear

After the deletion you get a list of the affected files.

Print the merged XML config data

It’s now possible to see the ACL tree in correct order.

n98-magerun2.phar config:data:acl

The second config related command prints the “DI config”. It can be filtered by scope/area.


n98-magerun2.phar config:data:di --scope webapi_soap "Magento\Framework\App\FrontControllerInterface"



  • sys:cron:schedule ‘area code is not set’ exception. (by Pieter Hoste, #277)
  • Allow -1 as value for infinite max nesting level for xdebug (by Peter Jaap, #278)
  • Generate a shorter version of registration.php (by Alexander Turiak #280)

n98-magerun2 version 1.3.1 is out

Recent Magento 2 releases and the longer list of fixes demanded a new stable release of Magerun 2.

Jürgen Thelen kindly ported the admin:notifications and design:demo-notice commands, so each time you see the COW warning in the backend there is a relief now. So a warm welcome to Jürgen, we still have PRs from him in the pipe.

More dedicate cron control is available with sys:cron:schedule. Thanks to Pieter Hoste not only for his contributions to Magerun but also for his good work keeping track of Magento 2 upstream issue progress which is easy to get lost with. I really appreciate it, it’s always good to have some feedback when working with the rough edges we see day-to-day with Magento 2.

There is even more. A longer list of fixes (we keep them at the top of the change log), if you run into an issue, file it on Github. Also if you’re interested, grab an issue from the list – preferable one of the bugs – and give it a little love.

The config:set and config:get commands now support NULL values, this was a missing link for more special configuration requirements. Support has been backported to Magerun 1 as well (it’s in current stable 1.97.28, no release announcement yet).

Recent changes to the phar build have established reproducible builds. This means, that the same revision of the code-base will create the same phar file. This is a huge security and integration improvement as the checksum of the phar file won’t change when the file is re-build. For Magerun this is since this version 1.3.1 (1.97.28 for Magerun 1). So to all brew users: Even if we change the build system on, from now on the hashes of the versioned releases won’t change any longer.

For bash lovers we now have a static completion file in the res/autocompletion folder, you can find more information in the added Autocompletion section in the readme. This feature was earlier available in Magerun 1 and we have streamlined it between both editions. With static autocompletion you will see a faster response and auto-completion for parameters is available, too.

Downloads are available as usual on, direct link to this release: n98-magerun2-1.3.1.phar.

Happy developing and run the Magerun.

Extract from

  • Fix: Install command using wrong php binary and eating installer errors (report by David Lambauer, fix by Tom Klingenberg, #267)
  • Fix: Minor PHP version for Magento 2 extensions (by Alexander Turiak, #269)
  • Fix: Magento object manager usage in production mode (by Tom Klingenberg, #241)
  • Fix: Support for db-setting arrays (e.g. driver_options) (by Tom Klingenberg)
  • Fix: Class names in data setup twig template (by Jurgisl, #262)
  • Fix: Regex in VariablesCommandTest (by Jürgen Thelen, #255)
  • Imp: Build phar reproduceable and from dev requirements (by Tom Klingenberg)
  • Imp: Support NULL values in config:set and config:get (by Tom Klingenberg, #208)
  • Imp: Better handle incomplete Magento 2 installments (by Tom Klingenberg)
  • Imp: Dispatch adminhtml_cache_flush_all with cache:flush (report by Viktor Steinwand, #263)
  • New: Compilation of the bash autocomplete-file (by Tom Klingenberg)
  • New: Add current Magento2 versions (thanks Pieter Hoste, #270)
  • New: Add current Magento2 versions (by Tom Klingenberg)
  • New: Add sys:cron:schedule command (by Pieter Hoste, #257)
  • New: Port of design:demo-notice command (by Jürgen Thelen, #69)
  • New: Build with PHP 7.1 for some jobs (by Tom Klingenberg, #256)
  • New: Port of admin:notifications command (by Jürgen Thelen, #29)

n98-magerun2 version 1.3.0 is out

Long time no stable releases, Magerun 2 Version 1.3.0 opens up a new release cycle incorporating more and more stability fixes and improved commands for the new Magento platform.

This ones coming from SymfonyCon which reminded us for the upcoming cloud based setups we need to ship new features for which we need to ship the current version first.

We recommend to upgrade the version for everyone. Magento 2 is still an emerging field and Magerun still has some rough corners. So stay current.

Extract from

  • Fix: Fatal error when running Magerun 2 inside a Magento 1 tree (by Tom KLingenberg, #253)
  • Fix: Add missing areas to the observer list (by Pieter Hoste, #249)
  • Fix: Do not drop all sales_order_status* tables (report by Brent Jameson, fix by Tom KLingenberg, #239)
  • Fix: Prevent Mysql deadlock on admin password change (by Tom KLingenberg, #242)
  • New: Add Magento CE 2.1.2 (by Raul E Watson, #252)
  • New: Debug output on –skip-root-check option (by Tom Klingenberg)
  • New: Interactive console: Support for initial code argument (by Christian Münch)
  • New: Introduced test framework (by Christian Münch)

Big New n98-magerun2 v1.2

We are happy to announce the global availability of n98-magerun2 v1.2.

The new release contains a ton of new features and improvements of which we’d like to highlight the following:

Make your Magento2 Development Run Again

Magerun now ships with the first stable incarnation of code-generators. While others are still reading devdocs having a hard time creating boiler-plate code, N98-Magerun gives this beast the spikes. So before you loose your Magerun charge from Magento 1 development when switching to two, consider this new release and give it a try. This is a great addition both in size and functionality, all what is missing is your feedback to make it shine.

You find these in the dev:console command. I’m pretty sure Christian Münch will provide some more details on this new interactive tool when you meet him around the one or other conference. As first seen on Imagine 2016 (? wasn’t it Las Vegas?).

More for the Magento 2 Developers

We also put attention to details with this release. For example there is a new command which allows you to automatically downgrade data and db versions when you develop Magento 2 modules. It’s name is sys:setup:downgrade-versions and it will automatically downgrade those versions which are ahead of time. This command in combination with setup:upgrade and editing your module.xml file /config/module/@setup_version allows you to quickly test your upgrade scripts as well.

Extract from

  • Fix: Fatal error in Phpstorm .idea folder detection for path in dev:urn-catalog:generate (by Tom Klingenberg, #233)
  • Fix: Wrong template-hints config value (by Tommy Pyatt, #230)
  • Fix: Broken scope-id detection (by Christian Münch)
  • Imp: Pass along return value in db:query command (by Tom Klingenberg)
  • Imp: Version constraints for Symfony console and Magento 2.1 (report by Pieter Hoste, #234)
  • New: Add sys:setup:downgrade-versions command (by Tom Klingenberg)
  • New: Add customer:create command (by Christian Münch, #54)
  • New: Add code generator features to dev:console command (by Christian Münch)

n98-magerun2 version 1.1.7 is out

This is just a quick notice about the immediate release of N98-Magerun2 which updates the installer for the latest and greatest Magerun 2 Community Edition 2.0.5.

You can learn more about the updates of Magento itself in the Magento CE 2.0.5 Release Notes.

Next to that it ships with some fixes and maintenance updates to keep things fresh.

We also followed suit to stabilize composer after it went gold in the beginning of April.

Composer goes Gold: The great Composer 1.0.0 release which also marks its 5th anniversary

After its initial 1.0.0 release we can now require it in a stable manner following semantic versioning. Reminds me now to add some checks before pushing out a release – or now then afterwards:

We also keep upstream projects like composer in the loop when we run over a Magerun 2 or Magento 2 induced issue. As some of you have already noticed, there were some patches in the latest Composer version that now allow Satis to archive Magento 2 zip (and a few days later tar) packages. This shows again how Magento 2 developers can more and more benefit from using and contributing to Magerun 2 as it’s part of a greater eco-system.

I hopefully can blog about some development changes soon, this will include combined development between Magerun 1 + 2 and another topic will be on how to locally have a development version of Magerun fully integrated with a Magento version incl. tests and building the phar file.

So keep on running Magerun and thanks for all the your feedback and contributions.

Magerun Uncategorized

Sunny Weather Double Feature Magerun Release

The weather is splendid over here and so that it keeps that way on your servers, after the latest stable releases it came to our attention that a little less used feature (home-directory based modules) was broken.

Yesterdays release of n98-magerun2 version 1.1.6 and todays release of n98-magerun version 1.97.17 address this issue.

The development now aims towards more sharing of code between the Magerun repositories so that we can better handle maintenance for Magerun 1 and the development of new features in Magerun 2 with a benefit in both projects.

That being said, it could be we’re seeing more and more releases of both projects close to each other. Also you’ll see some more code-improvements in Magerun 1 + 2.