No se especifica la versión de instalación de Magento2 para el módulo

24

Instalé una copia local de Magento 2. Tengo algún problema con el módulo personalizado.

Seguí la siguiente estructura de archivos / carpetas

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>

Dentro de este archivo tengo lo siguiente: Actualicé el caché de la tienda y luego obtuve:

La versión de configuración para el módulo 'Ps_HelloWorld' no está especificada.

Yogesh Karodiya
fuente
retire el schema_versiony luego intente
Manashvi Birla
no funciona
Yogesh Karodiya
Intente borrar el caché en la línea de comandos usando bin/magento cache:flushdesde su carpeta pública
Smartie
Además, schema_version se está eliminando en las versiones posteriores de la versión beta de lo que he escuchado
Smartie
este error también se produce si se hace referencia a un módulo en config.php pero no está instalado
roman204

Respuestas:

15

Tratar

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

Suponiendo que está ejecutando la rama maestra actual y no la rama dev

Renon Stewart
fuente
¿podría explicar en detalle por qué necesitamos ejecutar el php -f bin/magento setup:upgradecomando
Yogesh Karodiya
Ssh en su servidor y luego cd a la carpeta raíz de magento
Renon Stewart
RS hay un enlace oficial de magento2 que especifica todos estos comandos.
huzefam
2
puede obtener una lista de todos los comandos al ejecutarlos php -f bin/magento, ya sea que también proporcionará cuál es el propósito de todos y cada uno de los comandos
amit_game
33

En mi caso fue el permiso de archivo / carpeta de ese módulo.

Apache no pudo leer el archivo de configuración.

Aplique el siguiente permiso a su directorio de módulos.

chmod 775 <module path> -R
Nahid
fuente
1
Sí, en mi caso, este era el problema ... gracias;)
Adnan
Después de una gran búsqueda, vi esta respuesta e intenté como último intento. Dios mío, mi problema está resuelto. Muchas gracias @Nahid Bro :)
Pregunte Bytes
Esto resolvió mi problema también
Hassan Al-Jeshi
11

Fuente de referencia: https://magentoexplorer.com/magento-2-setup-version-for-module-is-not-specified-how-to-fix (en mi caso, recibí este error al crear un nuevo módulo de Magento 2 )

Puede encontrar este error debido a un permiso incorrecto de archivo / carpeta del módulo, puede cambiar el permiso para la carpeta del módulo de la siguiente manera

chmod 775 <module path> -R

Hay otra posibilidad de que haya olvidado agregar el registro.php y composer.json en el módulo. Intenta agregar el siguiente archivo

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

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

y /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\\": ""
        }
    }
}

Finalmente ejecuta estos comandos

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

¡Espero que esto ayude!

Brian
fuente
4

Un escenario adicional en el que esto ha surgido para mí se debió a realizar una extracción en el repositorio de mi proyecto y el módulo se había eliminado del sistema de archivos. Si bien esto fue intencional, en ese momento permaneció una configuración persistente en el archivo de configuración de Magento.

Eliminar la referencia al módulo de app/etc/config.phpresolvió mi problema.

TL; DR

Primero intenté deshabilitar el módulo usando el module:disable VendorName_ModuleNamecomando de la CLI y la respuesta de la CLI fue Unknown module(s): 'VendorName_ModuleName'. Supongo que esto se debe a que ya faltaba en el sistema de archivos. Dado que no hubo intenciones de usar el módulo nunca más, la eliminación manual de él app/etc/config.phpen este punto parece apropiado de todos modos.

Darren Felton
fuente
2
El tl; dr es más largo que el párrafo inicial ...
Stevie G
1
@ StevieG Todavía sonrío cada vez que vuelvo a esto jajajaja ... Cuando escribí esto por primera vez, no sabía lo que TL; DR quería decir, creo. Que la parte "tl; dr" es información adicional que se debe omitir si así lo elige o algo así.
Darren Felton
1

Abra su base de datos y encuentre la tabla setup_module.

Su módulo Ps_HelloWorlddebe estar en esta tabla.

Si no se encuentra, intente ingresar manualmente.

Anees
fuente
0

Problema: el archivo app/etc/config.phpse copió de otra instancia de magento (debido a una mala manipulación del archivo). Debido a eso, tuve los mismos síntomas que los descritos en esta pregunta.

La solución fue eliminar todos los nombres de módulos que no estaban en la instancia de Magento donde ocurrió el problema, y ​​funcionó bien.

Tenga en cuenta que probablemente habría sido una mejor solución bin/magento module:status, y luego bin/magento module:disablepara todos los módulos con problemas.

Cedric
fuente