Die Magento2-Setup-Version für das Modul ist nicht angegeben


24

Ich habe eine lokale Kopie von Magento 2 installiert. Ich habe ein Problem mit dem benutzerdefinierten Modul.

Ich folgte der Datei- / Ordnerstruktur

app/code/Ps/HelloWorld/etc/module.xml:

<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd">
    <module name="Ps_HelloWorld" schema_version="0.0.1" setup_version="0.0.1" />
</config>

In dieser Datei habe ich Folgendes: Ich habe den Speicher-Cache aktualisiert und dann Folgendes:

Setup-Version für Modul 'Ps_HelloWorld' ist nicht angegeben.


Entfernen Sie die schema_versionund versuchen
Sie es

Es funktioniert nicht
Yogesh Karodiya

Versuchen Sie, den Cache in der Befehlszeile mit Hilfe bin/magento cache:flushIhres öffentlichen Ordners zu
löschen

Auch schema_version wird in den späteren Versionen der Beta von dem entfernt, was ich gehört habe
Smartie

Dieser Fehler wird auch ausgelöst, wenn ein Modul in config.php referenziert, aber nicht installiert ist
roman204

Antworten:


15

Versuchen

php -f bin/magento module:enable --clear-static-content Module_Name
php -f bin/magento setup:upgrade

Angenommen, Sie führen den aktuellen Hauptzweig und nicht den Entwicklerzweig aus


php -f bin/magento setup:upgrade
Können

Ssh in den Server und dann in den Magento-Stammordner
Renon Stewart

RS gibt es einen offiziellen Link zu magento2, der alle diese Befehle spezifiziert.
Huzefam


2
Sie können eine Liste aller Befehle durch Ausführen abrufen php -f bin/magento. Entweder liefert es auch den Zweck jedes einzelnen Befehls
amit_game

33

In meinem Fall war es die Datei / Ordner-Berechtigung dieses Moduls.

Apache konnte die Konfigurationsdatei nicht lesen.

Übernehmen Sie die folgenden Berechtigungen in Ihr Modulverzeichnis.

chmod 775 <module path> -R

1
Ja in meinem Fall war dies das Problem .. danke;)
Adnan

Nach einer großen Suche hatte ich diese Antwort gesehen und als letzten Versuch versucht. Oh mein Gott, mein Problem wird gelöst. Vielen Dank @Nahid Bro :)
Ask Bytes

Dies löste auch mein Problem
Hassan Al-Jeshi

11

Referenzquelle: https://magentoexplorer.com/magento-2-setup-version-for-module-is-not-specified-how-to-fix (in meinem Fall trat dieser Fehler beim Erstellen eines neuen Magento 2-Moduls auf )

Möglicherweise tritt dieser Fehler aufgrund einer falschen Moduldatei / Ordner-Berechtigung auf. Sie können die Berechtigung für den Modulordner wie folgt ändern

chmod 775 <module path> -R

Es gibt eine weitere Möglichkeit, dass Sie vergessen haben, registration.php und composer.json im Modul hinzuzufügen . Versuchen Sie, die folgende Datei hinzuzufügen

/app/code/Namespace/Module/registration.php

<?php
\Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::MODULE,
    'Namespace_Module',
    __DIR__
);

und /app/code/Namespace/Module/composer.json

{
    "name": "namespace/module",
    "description": "namespace",
    "require": {
      "php": "~5.5.0|~5.6.0|~7.0.0",
      "magento/framework": "100.0.*",
      "magento/module-ui": "100.0.*",
      "magento/module-config": "100.0.*",
      "magento/module-contact": "100.0.*"    
    },
    "type": "magento2-module",
    "version": "100.0.0",
    "license": [
        "OSL-3.0",
        "AFL-3.0"
    ],
    "extra": {
        "map": [
            [
                "*",
                "Namespace/Module"
            ]
        ]
    },
    "autoload": {
        "files": [ "registration.php" ],
        "psr-4": {
            "namespace\\module\\": ""
        }
    }
}

Führen Sie zum Schluss diese Befehle aus

php -f bin/magento module:enable --clear-static-content Module_Name
magento setup:upgrade

Hoffe das hilft!


4

Ein zusätzliches Szenario, in dem dies für mich aufgetreten ist, war darauf zurückzuführen, dass das Repository meines Projekts abgerufen und das Modul aus dem Dateisystem entfernt wurde. Während dies beabsichtigt war, verblieb in der Magento-Konfigurationsdatei zu der Zeit eine verbliebene Konfiguration dafür.

Das Entfernen des Verweises auf das Modul von app/etc/config.phplöste mein Problem.

TL; DR

Ich habe zuerst versucht, das Modul mit dem CLI- module:disable VendorName_ModuleNameBefehl zu deaktivieren, und die Antwort von der CLI war Unknown module(s): 'VendorName_ModuleName'. Ich gehe davon aus, dass dies daran liegt, dass es im Dateisystem bereits fehlte. Da nicht beabsichtigt wurde, das Modul jemals wieder zu verwenden, erscheint es app/etc/config.phpdennoch angebracht, es an dieser Stelle manuell zu entfernen .


2
Die tl; dr ist länger als der erste Absatz ...
Stevie G

1
@StevieG Ich lächle immer noch jedes Mal, wenn ich zu dieser hahahaha zurückkehre ... Als ich das erste Mal schrieb, wusste ich nicht, was TL; Der Teil "tl; dr" ist eine zusätzliche Information, die bei Bedarf übersprungen werden soll.
Darren Felton

1

Öffnen Sie Ihre Datenbank und suchen Sie die Tabelle setup_module.

Ihr Modul Ps_HelloWorldsollte in dieser Tabelle sein.

Wenn nicht gefunden, versuchen Sie es manuell.


0

Problem: Die Datei app/etc/config.phpwurde von einer anderen Magento-Instanz kopiert (wegen einer fehlerhaften Dateimanipulation). Aus diesem Grund hatte ich die gleichen Symptome wie in dieser Frage beschrieben.

Die Lösung bestand darin, alle Modulnamen zu löschen, die sich nicht in der Instanz von Magento befanden, in der das Problem auftrat, und es funktionierte einwandfrei.

Beachten Sie, dass eine bessere Lösung wahrscheinlich gewesen wäre bin/magento module:status, und dann bin/magento module:disablefür alle Module mit Problemen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.