ไม่ได้ระบุเวอร์ชันการติดตั้ง Magento2 สำหรับโมดูล


24

ฉันติดตั้งสำเนาของ Magento 2 ในเครื่องฉันกำลังประสบปัญหาบางอย่างกับโมดูลที่กำหนดเอง

ฉันติดตามโครงสร้างไฟล์ / โฟลเดอร์ต่อไปนี้

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>

ภายในไฟล์นี้ฉันมีสิ่งต่อไปนี้: ฉันรีเฟรชแคชร้านค้าแล้วฉันได้:

ไม่ได้ระบุเวอร์ชันการติดตั้งสำหรับโมดูล 'Ps_HelloWorld'


ลบschema_versionแล้วลอง
Manashvi Birla

มันไม่ทำงาน
Yogesh Karodiya

ลองล้างแคชในบรรทัดคำสั่งโดยใช้bin/magento cache:flushจากโฟลเดอร์สาธารณะของคุณ
Smartie

นอกจากนี้ schema_version จะถูกลบออกในรุ่นที่ใหม่กว่าเบต้าจากสิ่งที่ผมเคยได้ยิน
Smartie

ข้อผิดพลาดนี้ก็จะถูกโยนถ้าโมดูลอ้างอิงใน config.php แต่ไม่ได้ติดตั้ง
roman204

คำตอบ:


15

ลอง

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

สมมติว่าคุณรันสาขาต้นแบบปัจจุบันไม่ใช่สาขา dev


คุณช่วยอธิบายรายละเอียดเกี่ยวกับสาเหตุที่เราจำเป็นต้องเรียกใช้php -f bin/magento setup:upgradeคำสั่ง
Yogesh Karodiya

Ssh ลงในเซิร์ฟเวอร์ของคุณจากนั้นไปที่โฟลเดอร์ root ของ magento
Renon Stewart

RS มีลิงค์อย่างเป็นทางการ magento2 ระบุคำสั่งเหล่านี้ทั้งหมด
huzefam


2
คุณสามารถรับรายการคำสั่งทั้งหมดได้โดยการรันphp -f bin/magentoไม่ว่ามันจะให้วัตถุประสงค์ของคำสั่งแต่ละคำสั่ง
amit_game

33

ในกรณีของฉันมันเป็นสิทธิ์ของไฟล์ / โฟลเดอร์ของโมดูลนั้น

Apache ไม่สามารถอ่านไฟล์กำหนดค่าได้

ใช้สิทธิ์ต่อไปนี้ไปยังไดเรกทอรีโมดูลของคุณ

chmod 775 <module path> -R

1
ใช่ในกรณีของฉันนี่เป็นปัญหา .. ขอบคุณ;)
Adnan

หลังจากการค้นหาครั้งใหญ่ฉันได้เห็นคำตอบนี้และพยายามเป็นครั้งสุดท้าย โอ้พระเจ้าปัญหาของฉันได้รับการแก้ไข ขอบคุณมาก @Nahid Bro :)
ถาม Bytes

วิธีนี้แก้ไขปัญหาของฉันได้ด้วย
Hassan Al-Jeshi

11

แหล่งอ้างอิง: https://magentoexplorer.com/magento-2-setup-version-for-module-is-not-specified-how-to-fix (ในกรณีของฉันฉันได้รับข้อผิดพลาดนี้เมื่อสร้างโมดูล Magento 2 ใหม่ )

คุณอาจพบข้อผิดพลาดนี้เนื่องจากสิทธิ์โมดูลไฟล์ / โฟลเดอร์ผิดคุณสามารถเปลี่ยนการอนุญาตสำหรับโฟลเดอร์โมดูลได้ดังต่อไปนี้

chmod 775 <module path> -R

มีความเป็นไปได้อีกอย่างที่คุณลืมเพิ่มการลงทะเบียน. phpและผู้แต่งในโมดูล ลองเพิ่มไฟล์ต่อไปนี้

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

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

และ/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\\": ""
        }
    }
}

ในที่สุดเรียกใช้คำสั่งเหล่านี้

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

หวังว่านี่จะช่วยได้!


4

สถานการณ์เพิ่มเติมที่สิ่งนี้เกิดขึ้นสำหรับฉันเนื่องจากการดำเนินการดึงที่เก็บโครงการของฉันและโมดูลถูกลบออกจากระบบไฟล์ ในขณะที่นี่เป็นการจงใจ แต่ก็ยังคงมีอยู่ในเวลาที่การกำหนดค่าสำหรับมันในแฟ้มการกำหนดค่าของวีโอไอพี

การลบการอ้างอิงถึงโมดูลจากการapp/etc/config.phpแก้ไขปัญหาของฉัน

TL; DR

ฉันไม่แรกลองปิดโมดูลโดยใช้ CLI ของmodule:disable VendorName_ModuleNameคำสั่งและกลับมาตอบสนองจาก CLI Unknown module(s): 'VendorName_ModuleName'เป็น ฉันคิดว่านี่เป็นเพราะมันหายไปจากระบบไฟล์แล้ว เนื่องจากไม่มีความตั้งใจที่จะใช้โมดูลอีกครั้งการลบด้วยตนเองจากapp/etc/config.phpจุดนี้จึงน่าจะเหมาะสมอยู่ดี


2
tl; dr นั้นยาวกว่าย่อหน้าแรก ...
Stevie G

1
@ StevieG ฉันยังคงยิ้มทุกครั้งที่ฉันกลับมาที่ฮ่าฮ่าฮ่าฮ่า ... ตอนที่ฉันเขียนครั้งแรกฉันไม่รู้ว่า TL; DR หมายถึงฉันเชื่อ ส่วนที่ "tl; dr" เป็นข้อมูลเพิ่มเติมที่ตั้งใจจะข้ามไปถ้าคุณเลือกหรืออะไร
Darren Felton

1

setup_moduleเปิดฐานข้อมูลของคุณและหาตาราง

โมดูลของคุณPs_HelloWorldควรอยู่ในตารางนี้

หากไม่พบลองป้อนด้วยตนเอง


0

ปัญหา: ไฟล์app/etc/config.phpถูกคัดลอกมาจากอินสแตนซ์วีโอไอพีอื่น (เนื่องจากการจัดการไฟล์ไม่ดี) ด้วยเหตุนี้ฉันจึงมีอาการเหมือนกันมากกว่าที่อธิบายไว้ในคำถามนี้

ทางออกคือการลบชื่อโมดูลทั้งหมดที่ไม่ได้อยู่ในอินสแตนซ์ของ Magento ที่เกิดปัญหาและทำงานได้ดี

โปรดทราบว่าอาจเป็นวิธีแก้ปัญหาที่ดีกว่าbin/magento module:statusและbin/magento module:disableสำหรับโมดูลทั้งหมดที่มีปัญหา

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.