A versão de instalação do Magento2 para o módulo não está especificada

24

Eu instalei uma cópia local do Magento 2. Estou enfrentando algum problema com o módulo personalizado.

Segui a seguinte estrutura de arquivos / pastas

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 deste arquivo, tenho o seguinte: Atualizei o cache da loja e obtive:

A versão de instalação do módulo 'Ps_HelloWorld' não está especificada.

Yogesh Karodiya
fonte
remova o schema_versione tente
Manashvi Birla
não o seu trabalho
Yogesh Karodiya
Tente cache de compensação na linha de comando usando bin/magento cache:flusha partir de sua pasta pública
Smartie
Além disso, schema_version está sendo removido nas versões posteriores do beta Pelo que tenho ouvido
Smartie
Este erro também é lançada se um módulo é referenciado no config.php, mas não está instalado
roman204

Respostas:

15

Experimentar

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

Supondo que você esteja executando o ramo principal atual e não o ramo dev

Renon Stewart
fonte
você pode explicar em detalhes porque nós precisamos executar php -f bin/magento setup:upgradecomandos
Yogesh Karodiya
Ssh em seu servidor, em seguida, cd para a pasta magento raiz
Renon Stewart
O RS possui um link oficial magento2 especificando todos esses comandos.
Huzefam 17/10/2015
2
você pode obter uma lista de todos os comandos executando php -f bin/magento, ou ele também fornecerá qual é o objetivo de cada comando
amit_game 7/15/15
33

No meu caso, era a permissão de arquivo / pasta desse módulo.

O Apache não pôde ler o arquivo de configuração.

Aplique a seguinte permissão ao diretório do módulo.

chmod 775 <module path> -R
Nahid
fonte
11
Sim, no meu caso era o problema .. obrigado;)
Adnan
Depois de uma grande pesquisa, eu tinha visto essa resposta e tentado como uma tentativa final. Oh meu Deus, meu problema foi resolvido. Muito obrigado @Nahid Bro :)
Ask Bytes
Isso resolveu meu problema também
Hassan Al-Jeshi
11

Fonte de referência: https://magentoexplorer.com/magento-2-setup-version-for-module-is-not-specified-how-to-fix (no meu caso, recebi esse erro ao criar um novo módulo Magento 2 )

Você pode encontrar esse erro devido à permissão incorreta de arquivo / pasta do módulo, pode alterar a permissão para a pasta do módulo da seguinte maneira

chmod 775 <module path> -R

Há outra possibilidade que você esqueceu de adicionar o registration.php e o composer.json no módulo. Tente adicionar o seguinte arquivo

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

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

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

Por fim, execute esses comandos

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

Espero que isto ajude!

Brian
fonte
4

Um cenário adicional em que isso surgiu foi devido à execução de um pull no repositório do meu projeto e o módulo foi removido do sistema de arquivos. Embora isso tenha sido intencional, ainda restava uma configuração no arquivo de configuração do Magento.

A remoção da referência ao módulo app/etc/config.phpresolveu meu problema.

TL; DR

Tentei primeiro desativar o módulo usando o module:disable VendorName_ModuleNamecomando da CLI e a resposta foi da CLI Unknown module(s): 'VendorName_ModuleName'. Presumo que isso ocorre porque ele já estava ausente do sistema de arquivos. Como não havia intenção de usar o módulo novamente, a remoção manual a partir app/etc/config.phpdeste ponto parece apropriada de qualquer maneira.

Darren Felton
fonte
2
O tl; dr é maior que o parágrafo inicial ... #
Stevie G
11
@StevieG Eu ainda sorrio toda vez que volto a essa hahahaha ... Quando escrevi isso pela primeira vez, eu não sabia o que TL; DR significava que eu acredito. Que a parte "tl; dr" é uma informação adicional que deve ser ignorada, se você escolher ou algo assim.
Darren Felton
1

Abra seu banco de dados e encontre a tabela setup_module.

Seu módulo Ps_HelloWorlddeve estar nesta tabela.

Se não for encontrado, tente entrar manualmente.

Anees
fonte
0

Problema: o arquivo app/etc/config.phpfoi copiado de outra instância do magento (devido a uma manipulação incorreta do arquivo). Por esse motivo, tive os mesmos sintomas que os descritos nesta pergunta.

A solução foi excluir todos os nomes de módulos que não estavam na instância do Magento, onde o problema ocorreu, e funcionou bem.

Observe que provavelmente teria sido uma solução melhor bin/magento module:statuse depois bin/magento module:disablepara todo o módulo com problemas.

Cedric
fonte