Versi Pengaturan Magento2 untuk modul tidak ditentukan

24

Saya memasang salinan lokal Magento 2. Saya menghadapi beberapa masalah dengan modul khusus.

Saya mengikuti struktur file / folder berikut

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>

Di dalam file ini saya memiliki yang berikut: Saya menyegarkan cache toko dan kemudian saya mendapat:

Versi pengaturan untuk modul 'Ps_HelloWorld' tidak ditentukan.

Yogesh Karodiya
sumber
hapus schema_versiondan coba
Manashvi Birla
ini tidak berfungsi
Yogesh Karodiya
Coba bersihkan cache pada baris perintah menggunakan bin/magento cache:flushdari folder publik Anda
Smartie
Juga, schema_version sedang dihapus dalam versi beta dari apa yang saya dengar
Smartie
kesalahan ini juga dilemparkan jika modul direferensikan di config.php tetapi tidak diinstal
roman204

Jawaban:

15

Mencoba

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

Dengan asumsi bahwa Anda menjalankan cabang master saat ini dan bukan cabang dev

Renon Stewart
sumber
bisa tolong jelaskan secara terperinci mengapa kita perlu menjalankan php -f bin/magento setup:upgradeperintah
Yogesh Karodiya
Ssh ke server Anda kemudian cd ke folder root magento
Renon Stewart
RS ada tautan resmi magento2 yang menetapkan semua perintah ini.
huzefam
2
Anda bisa mendapatkan daftar semua perintah dengan runnning php -f bin/magento, baik itu juga akan memberikan apa tujuan masing-masing dan setiap perintah
amit_game
33

Dalam kasus saya itu adalah izin file / folder dari modul itu.

Apache tidak dapat membaca file konfigurasi.

Terapkan izin berikut ke direktori modul Anda.

chmod 775 <module path> -R
Nahid
sumber
1
Ya dalam kasus saya ini masalahnya .. terima kasih;)
Adnan
Setelah pencarian besar, saya melihat jawaban ini dan mencoba sebagai percobaan terakhir. Ya Tuhan, masalah saya terpecahkan. Terima kasih banyak @Nahid Bro :)
Tanyakan Bytes
Ini memecahkan masalah saya juga
Hassan Al-Jeshi
11

Sumber referensi: https://magentoexplorer.com/magento-2-setup-version-for-module-is-not-specified-how-to-fix (dalam kasus saya, saya mendapatkan kesalahan ini saat membuat modul Magento 2 baru )

Anda mungkin mengalami kesalahan ini karena izin file / folder modul yang salah, Anda dapat mengubah izin untuk folder modul sebagai berikut

chmod 775 <module path> -R

Ada kemungkinan lain bahwa Anda lupa menambahkan registrasi.php dan composer.json dalam modul. Coba tambahkan file berikut

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

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

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

Akhirnya jalankan perintah ini

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

Semoga ini membantu!

Brian
sumber
4

Skenario tambahan di mana ini muncul bagi saya adalah karena melakukan penarikan pada repositori proyek saya dan modul telah dihapus dari sistem file. Meskipun ini disengaja, masih ada konfigurasi yang tersisa untuk itu dalam file konfigurasi Magento.

Menghapus referensi ke modul dari app/etc/config.phpmenyelesaikan masalah saya.

TL; DR

Saya pertama kali mencoba menonaktifkan modul menggunakan perintah CLI module:disable VendorName_ModuleNamedan respons balik dari CLI adalah Unknown module(s): 'VendorName_ModuleName'. Saya berasumsi ini karena sudah hilang dari sistem file. Karena tidak ada niat menggunakan modul lagi, penghapusan manual dari app/etc/config.phppada saat ini tampaknya tepat.

Darren Felton
sumber
2
Tl; dr lebih panjang dari paragraf awal ...
Stevie G
1
@StevieG Saya masih tersenyum setiap kali saya kembali ke hahahaha ini ... Ketika saya pertama kali menulis ini, saya tidak tahu apa TL; DR artinya saya percaya. Bahwa bagian "tl; dr" adalah info tambahan yang dimaksudkan untuk dilewati jika Anda memilihnya atau sesuatu.
Darren Felton
1

Buka Database Anda dan temukan tabelnya setup_module.

Modul Anda Ps_HelloWorldharus ada dalam tabel ini.

Jika tidak ditemukan coba masuk secara manual.

Anees
sumber
0

Masalah: file app/etc/config.phpdisalin dari instance magento lain (karena manipulasi file yang buruk). Karena itu, saya memiliki gejala yang sama dari yang dijelaskan dalam pertanyaan ini.

Solusinya adalah menghapus semua nama modul yang tidak ada dalam instance Magento di mana masalahnya terjadi, dan itu berhasil dengan baik.

Perhatikan bahwa solusi yang lebih baik mungkin untuk bin/magento module:status, dan kemudian bin/magento module:disableuntuk semua modul dengan masalah.

Cedric
sumber