Besser entwickeln mit Magerun - Teil 2: Die wichtigsten Befehle

Administrator

In neuen Projekten oder aber auch in Projekten, in denen man länger nicht mehr tätig war, kann es passieren, dass man keinen Zugang zum Backend besitzt. Jetzt kann man natürlich Kollegen ausfindig machen oder den Betreiber darum bitten, ein Konto anzulegen. Dabei vergeht aber wertvolle Zeit und es werden unnötig andere Personen von ihrer Arbeit abgehalten. Magerun ist mal wieder die Lösung.

Übersicht über alle berechtigte Benutzer, die Zugang zum Backend haben:

magerun admin:user:list

Einen neuen Backendbenutzer anlegen:

magerun admin:user:create

Passwort vergessen? Kein Problem. Mit Magerun lässt sich auch das Passwort neu setzen:

magerun admin:user:change-password

Wartungsarbeiten

Wartungsarbeiten am Shop sollten bei höherem Aufwand nicht im laufenden Betrieb vorgenommen werden. Magento besitzt für diesen Zweck einen sogenannten "Maintenance"-Modus. Einmal aktiviert, zeigt der Shop eine Wartungsseite an und verhindert so das Bestellen und Betrachten von Produkten. Der passende Magerun-Befehl lautet:

magerun sys:maintenance [--on] [--off]

Werden die zusätzlichen Parameter weggelassen, schaltet Magerun zwischen diesen beiden hin und her.

Cronjobs

Im zweiten Teil unserer Blogserie über Magerun (v1.97.22) stellen wir einige der meist genutzten Befehle für Magerun 1 vor. Diese Vorstellung ist natürlich rein subjektiv. Mageruns Funktionsvielfalt mit weit über 100 Befehlen im nativen Zustand bietet für jeden Entwickler mindestens ein paar nützliche Kommandos.

Ein sehr wichtiges Tool bei Magento sind die Cronjobs, die im Hintergrund zeitgesteuert Aufgaben erledigen. Entwickeln wir nun selber einmal Cronjobs, bietet Magento natürlich auch die Möglichkeit, über die Shell mit PHP eine Auflistung zu erhalten oder diese zu starten.

Auflisten aller Cronjobs mit Magento

php shell/scheduler.php --action listAllCodes

Sitemap generieren über Cronjob

php shell/scheduler.php --action runNow --code sitemap_generate

Einfacher geht dies mit Magerun. Auflisten aller Cronjobs mit Magerun:

magerun sys:cron:list

Sitemap generieren mit Magerun:

magerun sys:cron:run sitemap_generate

Alternativ erhalten wir über den Aufruf

magerun sys:cron:run

eine Liste aller Cronjobs mit einer vorangestellten Nummer, die wir am Ende einfach nur noch eingeben müssen, und der Cronjobs wird gestartet.

Cache leeren

Install- oder Update-Skripte

In Magento 1 werden Install- oder Update-Skripte über das Frontend getriggert. Skript ist fertig, die neue Versionsnummer ist gesetzt, jetzt wird das Frontend aufgerufen und – oh weh, wir haben den Maintenance-Modus aktiviert, da unser Skript auf dem Live-Shop gerade deployt werden soll.

Zum Glück haben wir Magerun installiert.

magerun sys:setup:run

Mit dieser Zeile werden alle noch nicht aufgerufenen Install- oder Update-Skripte von Magerun getriggert und somit ausgeführt.

Dieser Befehl ist allerdings für die mutigen Entwickler unter uns gedacht. Tritt ein Fehler auf, sehen wir das erst am Ende in unseren Logdateien oder beim Umschalten des Shops aus dem Maintenance-Modus.

Eine bessere Alternative dazu ist der inkrementelle Befehl:

magerun sys:setup:incremental [--stop-on-error]

Der zusätzliche Parameter sollte immer mit angegeben werden.

Der Aufruf hat zur Folge, dass er eine Übersicht über alle erforderlichen Setup-Skripte erstellt. Strukturelle Updates haben immer Vorrang vor inhaltlichen Änderungen. Findet der Befehl Skripte zur Aktualisierung des Shops, werden diese mit einer Übersicht der Versionsnummer bestätigt. Der Vorteil dabei ist, dass ein Fehler direkt einem Skript zugeordnet werden kann.

Wie im ersten Teil beschrieben, ist das Leeren des Caches bei Magento oft mühselig, wenn man mal eben eine Kleinigkeit geändert hat. Anstatt sich im Backend anzumelden und zur Cache-Verwaltung zu navigieren, reicht ein einfacher Magerun-Befehl in der Konsole aus:

magerun cache:flush

Äquivalent dazu ist der Linux-Befehl:

rm -rf var/cache/*

Aber warum das Risiko eingehen, mit dem Linux-Löschbefehl auf der Konsole zu hantieren? Einmal zu schnell die Eingabetaste gedrückt oder sich vertippt – und wir haben plötzlich mehr gelöscht als uns lieb ist. Sicherer ist der Magerun-Befehl.

Cache ein- und ausschalten

Versionsnummern von Modulen vergleichen, zurücksetzen und entfernen

Ebenfalls sehr praktikabel ist das Ein- und Ausschalten des Magento Caches über Magerun.

magerun cache:enable  // Cache einschalten
magerun cache:disable // Cache ausschalten

Wer den Cache noch etwas genauer bearbeiten möchte, erhält über den Befehl

magerun cache:list

eine Auflistung aller vorhandenen Magento Caches und deren Status.

codestatus
configdisabled
layoutdisabled
block_htmldisabled
translatedisabled
collectionsdisabled
eavdisabled
config_apidisabled
config_api2disabled

Mittels Code-Wert aus der ersten Spalte lassen sich gezielt die einzelnen Caches ändern.

magerun cache:enable config  // Konfigurationscache einschalten

Bleiben wir bei den Setup-Skripten. Magento hält die aktuelle Versionsnummer eines jeden installierten Moduls in der Datenbanktabelle "core_resource" vor.

Angenommen, es wurde ein Fehler in einem Setup-Skript bei dessen Ausführung festgestellt. Der Shop bleibt stehen, da die Datenbanktabelle core_resource das Setup nicht erfolgreich abschliessen konnte und somit die neuen Versionsnummern nicht zusammenpassen.

Um eine Übersicht der Modulversionen zu erhalten, tippen wir folgenden Magerun-Befehl ein:

magerun sys:setup:compare-versions

Wir erhalten eine Übersicht aller Module und sehen sofort den Fehler.

SetupModuleDBDataStatus
cms_setup1.6.0.0.21.6.0.0.21.6.0.0.2OK
...............
custom_module_setup0.1.10.1.10.1.0Error

Das Modul Custom_Module konnte nicht auf die neue Version angehoben werden. Der Fehler wurde jetzt behoben und nun müssten wir in die Datenbank gehen und die Versionsnummern wieder zurücksetzen, damit wir das Modul erneut aktualisieren können.

Mit Magerun lässt sich dies ebenfalls bewerkstelligen:

magerun sys:setup:change-version custom_module 0.1.0

Der Bezeichner "_setup" am Ende des Modulnamens wird hierbei weggelassen. Die Versionsnummer wurde zurückgesetzt und kann nun erneut aktualisiert werden.

Magerun liefert noch einen weiteren Befehl um Module komplett zurückzusetzen.

magerun sys:setup:remove custom_module

Im Grunde löscht der Befehl einfach nur die Zeile aus der Datenbanktabelle core_resource. Beim nächsten Aufruf von "magerun sys:setup:incremental" werden alle Setup-Skripte aus diesem Modul erneut ausgeführt.

Zugriff auf die Datenbank

Ihr seid auf einem Kundenserver, müsst euch schnell in die Datenbank einwählen und habt gerade das 32-stellige Passwort und den Benutzernamen nicht im Kopf? Braucht ihr auch nicht.

magerun db:console

Schon seid Ihr auf der Datenbank eingeloggt. Magerun hat Zugriff auf die local.xml und liest alle benötigten Informationen aus, um sich mit der Datenbank zu verbinden.

Datenbank löschen und anlegen

magerun db:drop // Löschen der Datenbank
magerun db:create // Anlegen der Datenbank

Voraussetzung hierfür ist eine korrekte local.xml.

Datenbank exportieren & importieren

Beim Umzug von Shops oder beim Neueinrichten wird meist eine Sicherung, ein Dump, benötigt.

magerun db:dump //liefert einen Dump der aktuellen Datenbankstruktur samt Daten

Um diesen Dump wieder einspielen zu können, nutzen wir den Import-Befehl:

magerun db:import filename // importiert die Datenbank anhand des gewählten Dateinamens

Indizes neu aufbauen

Die Produktdaten eines Shops ändern sich hin und wieder mal, wodurch die Indizes invalide werden und einen Neuaufbau benötigen. Über das Backend geschieht dies in der Index-Verwaltung.

Jetzt kommt es allerdings mal vor, dass der eine oder andere Browser plötzlich einfriert, während man auf die Statusmeldung der Indizierung wartet, sich aufhängt oder oder oder. Sicherer ist dann eine Neuindizierung über die Shell mit Magerun.

Eine Übersicht und den Status alles Indizes zeigt folgender Befehl:

magerun index:list

Eine Aktualisierung einzelner Indizes schafft Magerun mit dem Reindex-Befehl:

magerun index:reindex [code]

Dabei können auch mehrere Indizes kommasepariert verwendet werden.

Wird eine Vollindizierung benötigt, bietet Magerun den Reindex:All-Befehl an:

magerun index:reindex:all

Eure Meinung zu Magerun

Magerun ist einfach ein wahnsinnig wichtiges Werkzeug für den Umgang mit Magento geworden. Es nimmt den Entwicklern und Administratoren einen großen Teil an Arbeit ab, indem es den Umgang mit sonst schwerfälligen Befehlen enorm erleichtert.

Und wahrscheinlich könnte ich noch stundenlang über spannende Befehle mit Magerun schreiben, aber bis hierhin soll es erst einmal reichen. Wenn ihr bis zum Schluss durchgehalten habt, würde ich mich über ein Feedback freuen. Teilt mir mit, welche Magerun-Befehle ihr im Einsatz habt. Gerne auch Erweiterungen von Drittanbietern oder Verlinkungen zu euren eigenen Erweiterungen.

Autor: Kategorie: Webentwicklung
Schlagwörter: Magento, Wissen
YTo2OntzOjY6ImZldXNlciI7aTowO3M6MzoicGlkIjtpOjk3O3M6MzoiY2lkIjtpOjEwOTcxMjQyNjM7czo0OiJjb25mIjthOjEwOntzOjEwOiJzdG9yYWdlUGlkIjtpOjEyNDtzOjE0OiJleHRlcm5hbFByZWZpeCI7czoxMToidHhfbmV3c19waTEiO3M6MTM6IlVzZXJJbWFnZVNpemUiO2k6MTg7czo5OiJhZHZhbmNlZC4iO2E6MTp7czoyMToic2hvd0NvdW50Q29tbWVudFZpZXdzIjtpOjA7fXM6ODoic2hhcmluZy4iO2E6MTp7czoxMjoidXNlU2hhcmVJY29uIjtOO31zOjg6InJhdGluZ3MuIjthOjM6e3M6MTY6InJhdGluZ0ltYWdlV2lkdGgiO2k6MTE7czoxNjoicmV2aWV3SW1hZ2VXaWR0aCI7aToxNjtzOjg6Im1vZGVwbHVzIjtzOjQ6ImF1dG8iO31zOjY6InRoZW1lLiI7YTo3OntzOjI2OiJib3htb2RlbFRleHRhcmVhTGluZUhlaWdodCI7aTozMDtzOjI0OiJib3htb2RlbFRleHRhcmVhTmJyTGluZXMiO2k6NDtzOjE1OiJib3htb2RlbFNwYWNpbmciO2k6MTA7czoxODoiYm94bW9kZWxMaW5lSGVpZ2h0IjtpOjIwO3M6MTg6ImJveG1vZGVsTGFiZWxXaWR0aCI7aToxMzQ7czoyNjoiYm94bW9kZWxMYWJlbElucHV0UHJlc2VydmUiO2k6MTtzOjIyOiJib3htb2RlbElucHV0RmllbGRTaXplIjtpOjM1O31zOjE3OiJwcmVmaXhUb1RhYmxlTWFwLiI7YToxMDp7czoxNDoidHhfYWxidW0zeF9waTEiO3M6MTc6InR4X2FsYnVtM3hfaW1hZ2VzIjtzOjE1OiJ0eF9jb21tZXJjZV9waTEiO3M6MjA6InR4X2NvbW1lcmNlX3Byb2R1Y3RzIjtzOjEyOiJ0eF9pcmZhcV9waTEiO3M6MTA6InR4X2lyZmFxX3EiO3M6MTU6InR4X21pbmluZXdzX3BpMSI7czoxNjoidHhfbWluaW5ld3NfbmV3cyI7czo5OiJ0eF90dG5ld3MiO3M6NzoidHRfbmV3cyI7czoxMToidHRfcHJvZHVjdHMiO3M6MTE6InR0X3Byb2R1Y3RzIjtzOjI0OiJ0eF93ZWNzdGFmZmRpcmVjdG9yeV9waTEiO3M6MjU6InR4X3dlY3N0YWZmZGlyZWN0b3J5X2luZm8iO3M6MTI6InR4X2NvbW11bml0eSI7czo4OiJmZV91c2VycyI7czoxOToidHhfY3d0Y29tbXVuaXR5X3BpMSI7czo4OiJmZV91c2VycyI7czoxMToidHhfbmV3c19waTEiO3M6MjU6InR4X25ld3NfZG9tYWluX21vZGVsX25ld3MiO31zOjExOiJzaG93VWlkTWFwLiI7YTo1OntzOjk6InR4X3R0bmV3cyI7czo3OiJ0dF9uZXdzIjtzOjExOiJ0dF9wcm9kdWN0cyI7czo3OiJwcm9kdWN0IjtzOjEyOiJ0eF9jb21tdW5pdHkiO3M6NDoidXNlciI7czoxOToidHhfY3d0Y29tbXVuaXR5X3BpMSI7czoyNToiYWN0aW9uPWdldHZpZXdwcm9maWxlJnVpZCI7czoxMToidHhfbmV3c19waTEiO3M6NDoibmV3cyI7fXM6MTI6IlJlcXVpcmVkTWFyayI7czoxOiIqIjt9czo0OiJsYW5nIjtzOjI6ImRlIjtzOjM6InJlZiI7czoyOToidHhfbmV3c19kb21haW5fbW9kZWxfbmV3c18yNjMiO30%3DYTo0OntzOjQ6ImNvbmYiO2E6MzU6e3M6MTc6InVzZVdlYnBhZ2VQcmV2aWV3IjtzOjE6IjEiO3M6MjI6InVzZVdlYnBhZ2VWaWRlb1ByZXZpZXciO3M6MToiMSI7czoyMDoid2VicGFnZVByZXZpZXdIZWlnaHQiO3M6MjoiNzAiO3M6MjA6Im1heENoYXJzUHJldmlld1RpdGxlIjtzOjI6IjcwIjtzOjMxOiJ3ZWJwYWdlUHJldmlld0Rlc2NyaXB0aW9uTGVuZ3RoIjtzOjM6IjE2MCI7czozODoid2VicGFnZVByZXZpZXdEZXNjcmlwdGlvbk1pbmltYWxMZW5ndGgiO3M6MjoiNjAiO3M6Mjc6IndlYnBhZ2VQcmV2aWV3Q2FjaGVUaW1lUGFnZSI7czozOiIxODAiO3M6MzM6IndlYnBhZ2VQcmV2aWV3Q2FjaGVUaW1lVGVtcEltYWdlcyI7czoyOiI2MCI7czozMDoid2VicGFnZVByZXZpZXdDYWNoZUNsZWFyTWFudWFsIjtzOjE6IjAiO3M6Mjg6IndlYnBhZ2VQcmV2aWV3TnVtYmVyT2ZJbWFnZXMiO3M6MjoiMTAiO3M6Mzg6IndlYnBhZ2VQcmV2aWV3U2Nhbk1pbmltYWxJbWFnZUZpbGVTaXplIjtzOjQ6IjE1MDAiO3M6MzA6IndlYnBhZ2VQcmV2aWV3U2Nhbk1pbkltYWdlU2l6ZSI7czoyOiI0MCI7czozMDoid2VicGFnZVByZXZpZXdTY2FuTWF4SW1hZ2VTaXplIjtzOjM6IjQ1MCI7czoyOToid2VicGFnZVByZXZpZXdTY2FuTWluTG9nb1NpemUiO3M6MjoiMzAiO3M6MzE6IndlYnBhZ2VQcmV2aWV3U2Nhbk1heEltYWdlU2NhbnMiO3M6MjoiNDAiO3M6Mzg6IndlYnBhZ2VQcmV2aWV3U2Nhbk1heEltYWdlU2NhbnNGb3JMb2dvIjtzOjI6IjU1IjtzOjQwOiJ3ZWJwYWdlUHJldmlld1NjYW5NYXhIb3J6aXpvbnRhbFJlbGF0aW9uIjtzOjI6IjU7IjtzOjM3OiJ3ZWJwYWdlUHJldmlld1NjYW5tYXh2ZXJ0aWNhbHJlbGF0aW9uIjtzOjE6IjMiO3M6MzA6IndlYnBhZ2VQcmV2aWV3U2NhbkxvZ29QYXR0ZXJucyI7czoxMDoibG9nbyxjcmdodCI7czozODoid2VicGFnZVByZXZpZXdTY2FuRXhjbHVkZUltYWdlUGF0dGVybnMiO3M6NTc6InBpeGVsdHJhbnMsc3BhY2VyLHlvdXR1YmUscmNsb2dvcyx3aGl0ZSx0cmFuc3BhLGJnX3RlYXNlciI7czozODoid2VicGFnZVByZXZpZXdEZXNjcmlwdGlvblBvcnRpb25MZW5ndGgiO3M6MjoiNDAiO3M6MjU6IndlYnBhZ2VQcmV2aWV3Q3VybFRpbWVvdXQiO3M6NDoiNzAwMCI7czoxMjoidXNlUGljVXBsb2FkIjtzOjE6IjAiO3M6MTI6InVzZVBkZlVwbG9hZCI7czoxOiIwIjtzOjEzOiJwaWNVcGxvYWREaW1zIjtzOjM6IjEwMCI7czoxNjoicGljVXBsb2FkTWF4RGltWCI7czozOiI4MDAiO3M6MTY6InBpY1VwbG9hZE1heERpbVkiO3M6MzoiOTAwIjtzOjIyOiJwaWNVcGxvYWRNYXhEaW1XZWJwYWdlIjtzOjM6IjQ3MCI7czoyMzoicGljVXBsb2FkTWF4RGltWVdlYnBhZ2UiO3M6MzoiMzAwIjtzOjIwOiJwaWNVcGxvYWRNYXhmaWxlc2l6ZSI7czo0OiIyNTAwIjtzOjIwOiJwZGZVcGxvYWRNYXhmaWxlc2l6ZSI7czo0OiIzMDAwIjtzOjE4OiJzb3VuZGNsb3VkQ2xpZW50SUQiO3M6MDoiIjtzOjIyOiJzb3VuZGNsb3VkQ2xpZW50U2VjcmV0IjtzOjA6IiI7czoyMDoidXNlVG9wV2VicGFnZVByZXZpZXciO3M6MDoiIjtzOjI0OiJ0b3BXZWJwYWdlUHJldmlld1BpY3R1cmUiO2k6MDt9czoxMToiYXdhaXRnb29nbGUiO3M6Mjg6IldhcnRlIGF1ZiBBbnR3b3J0IHZvbiBHb29nbGUiO3M6ODoidHh0aW1hZ2UiO3M6MTM6IkJpbGQgZ2VmdW5kZW4iO3M6OToidHh0aW1hZ2VzIjtzOjE1OiJCaWxkZXIgZ2VmdW5kZW4iO30%3DYTowOnt9YTowOnt9YTo3OntzOjE2OiJjb21tZW50TGlzdEluZGV4IjthOjE6e3M6MzI6ImNpZHR4X25ld3NfZG9tYWluX21vZGVsX25ld3NfMjYzIjthOjE6e3M6MTA6InN0YXJ0SW5kZXgiO2k6MTU7fX1zOjE0OiJjb21tZW50c1BhZ2VJZCI7aTo5NztzOjE2OiJjb21tZW50TGlzdENvdW50IjtpOjEwOTcxMjQyNjM7czoxMjoiYWN0aXZlbGFuZ2lkIjtpOjA7czoxNzoiY29tbWVudExpc3RSZWNvcmQiO3M6Mjk6InR4X25ld3NfZG9tYWluX21vZGVsX25ld3NfMjYzIjtzOjEyOiJmaW5kYW5jaG9yb2siO3M6MToiMCI7czoxMjoibmV3Y29tbWVudGlkIjtOO30%3D YTo1OntzOjExOiJleHRlcm5hbFVpZCI7aToyNjM7czoxMjoic2hvd1VpZFBhcmFtIjtzOjQ6Im5ld3MiO3M6MTY6ImZvcmVpZ25UYWJsZU5hbWUiO3M6MjU6InR4X25ld3NfZG9tYWluX21vZGVsX25ld3MiO3M6NToid2hlcmUiO3M6MTcwOiJhcHByb3ZlZD0xIEFORCBleHRlcm5hbF9yZWY9J3R4X25ld3NfZG9tYWluX21vZGVsX25ld3NfMjYzJyBBTkQgcGlkPTEyNCBBTkQgdHhfdG9jdG9jX2NvbW1lbnRzX2NvbW1lbnRzLmRlbGV0ZWQ9MCBBTkQgdHhfdG9jdG9jX2NvbW1lbnRzX2NvbW1lbnRzLmhpZGRlbj0wIEFORCBwYXJlbnR1aWQ9MCI7czoxMDoid2hlcmVfZHBjayI7czoxMzk6ImV4dGVybmFsX3JlZj0ndHhfbmV3c19kb21haW5fbW9kZWxfbmV3c18yNjMnIEFORCBwaWQ9MTI0IEFORCB0eF90b2N0b2NfY29tbWVudHNfY29tbWVudHMuZGVsZXRlZD0wIEFORCB0eF90b2N0b2NfY29tbWVudHNfY29tbWVudHMuaGlkZGVuPTAiO30%3D YToyOntpOjA7czoxNDk6IjxpbWcgc3JjPSIvdHlwbzNjb25mL2V4dC90b2N0b2NfY29tbWVudHMvcmVzL2Nzcy90aGVtZXMvdHVkb2NrL2ltZy9wcm9maWxlLnBuZyIgY2xhc3M9InR4LXRjLXVzZXJwaWMgdHgtdGMtdWltZ3NpemUiIHRpdGxlPSIiICBpZD0idHgtdGMtY3RzLWltZy0iIC8%2BIjtpOjk5OTk5O3M6MTUxOiI8aW1nIHNyYz0iL3R5cG8zY29uZi9leHQvdG9jdG9jX2NvbW1lbnRzL3Jlcy9jc3MvdGhlbWVzL3R1ZG9jay9pbWcvcHJvZmlsZWYucG5nIiBjbGFzcz0idHgtdGMtdXNlcnBpY2YgdHgtdGMtdWltZ3NpemUiIHRpdGxlPSIiICBpZD0idHgtdGMtY3RzLWltZy0iIC8%2BIjt9
Bitte bestätigen Sie
Nein
Ja
Information
Ok
Vorschau wird geladen ...
* Pflichtfeld
Ihr Kommentar ist eine Antwort auf den folgenden Kommentar

Wir behalten uns vor, Kommentare zu löschen, beispielsweise wenn sich diese nicht auf den Beitrag beziehen, zur Eigenwerbung missbraucht werden, persönliche Daten anderer enthalten, diskriminieren, beleidigen oder Rechte verletzen.

Datenschutzhinweis: Wenn Sie einen Kommentar oder sonstigen Beitrag in unserem Blog hinterlassen, speichern wir neben Ihren Angaben Ihre IP-Adresse. Darüber hinaus können Sie die Beiträge und Kommentare unseres Blogs abonnieren. Das Kommentarabonnement können Sie jederzeit abbestellen. Weitere Informationen finden Sie in unserer Datenschutzerklärung.

E-Commerce & Webentwicklung: Wir realisieren und optimieren Internetprojekte. Unser Fachgebiet sind Onlineshops, Rich Internet Applications und anspruchsvolle Onlineauftritte. Über unsere Arbeit schreiben wir. Hier im Blog von TUDOCK.