คำถามติดแท็ก install-script

3
จะเพิ่มคอลัมน์ใหม่ลงในตารางที่มีอยู่ใน Magento โดยทางโปรแกรมได้อย่างไร
ฉันจะเพิ่มคอลัมน์ใหม่ไปยังตารางหลักของวีโอไอพีที่มีอยู่ผ่านสคริปต์การติดตั้งได้อย่างไร (โดยไม่ใช้ pure SQL) ฉันต้องการใช้วิธีวีโอไอพีซึ่งใช้วิธีนามแฝงเพื่อสร้างสคริปต์การติดตั้ง จนถึงตอนนี้ฉันได้ติดตามบทเรียนไม่กี่ครั้ง แต่ดูเหมือนว่าจะทำงานไม่ถูกต้อง StackOverflow นี้เปลี่ยนแปลงในสคริปต์การตั้งค่าวีโอไอพีโดยไม่ใช้คำตอบSQLค่อนข้างคล้ายกับคำถามของฉัน แต่เนื้อหาควรจะใส่เข้าไปในconfg.xmlไฟล์ของโมดูลอะไร? ฉันจำเป็นต้องกำหนดรูปแบบทรัพยากรรูปแบบและข้อมูลการตั้งค่าที่เพียงพอ ส่วนที่เกี่ยวข้องของconfig.xml(ของโมดูลของฉัน) มีดังนี้ <config> . . . <global> <models> <mymodule> <class>Mynamespace_Mymodule_Model</class> <resourceModel>mymodule_resource</resourceModel> </mymodule> <mymodule_resource> <class>Mynamespace_Mymodule_Model_Resource</class> </mymodule_resource> </models> <resources> <mymodule_setup> <setup> <module>Mynamespace_Mymodule</module> </setup> <connection> <use>core_setup</use> </connection> </mymodule_setup> <mymodule_read> <connection> <use>core_read</use> </connection> </mymodule_read> <mymodule_write> <connection> <use>core_write</use> </connection> </mymodule_write> </resources> . . . …

5
ใช้ $ installer v $ this ในสคริปต์การติดตั้ง
ตกลงการใช้สคริปต์การติดตั้งดูเหมือนจะเป็นเรื่องแปลกที่จะใช้สิ่งต่อไปนี้: $installer = $this; ฉันไม่เข้าใจจริงๆเพราะซ้ำซ้อนอย่างสมบูรณ์ ทำไมไม่ใช้เพียง$this->ตลอดทั้งบท? มีความคิดเห็นใดเกี่ยวกับสาเหตุของการประชุมนี้

3
ที่จัดเก็บปัจจุบันคือ 1 เมื่อเรียกใช้สคริปต์อัปเกรด
แนวคิดใดที่Mage::app()->getStore()ส่งคืนมุมมองร้านค้าด้วย id 1 เมื่อภายในสคริปต์อัปเกรดที่เป็นอิสระในมุมมองร้านค้าฉันกำลังเรียกใช้สคริปต์อัปเกรดใน (แม้แต่ผู้ดูแลระบบ) ฉันหมายความว่าฉันรู้ว่ารหัสที่ทำนี่อยู่ที่ไหน ในMage_Core_Model_App::getStore()นี้มี: if (!Mage::isInstalled() || $this->getUpdateMode()) { return $this->_getDefaultStore(); } และ_getDefaultStoreมีลักษณะเช่นนี้: if (empty($this->_store)) { $this->_store = Mage::getModel('core/store') ->setId(self::DISTRO_STORE_ID) ->setCode(self::DISTRO_STORE_CODE); } return $this->_store; $this->_store ว่างเสมอเมื่อถึงวิธีการด้านบน ฉันได้รับผลลัพธ์เดียวกันแม้ว่าฉันจะเพิ่มที่ด้านบนสุดของสคริปต์อัปเกรด: Mage::app()->setCurrentStore(Mage::getModel('core/store')->load(Mage_Core_Model_App::ADMIN_STORE_ID)); ฉันอยากรู้เกี่ยวกับตรรกะทางธุรกิจของการมี 'คุณสมบัติ' นี้

1
Magento 2 ถอนการติดตั้งโมดูล
เห็นได้ชัดว่าตอนนี้ Magento 2 รองรับสคริปต์ถอนการติดตั้งที่อนุญาตให้แก้ไข db schema เมื่อทำการถอนการติดตั้งโมดูล (horay !!) ตามที่อธิบายไว้ในที่นี้สามารถใช้งานได้กับโมดูลที่ติดตั้งผ่านผู้แต่งเท่านั้น (ฉันหวังว่ามันจะทำงานในอนาคตสำหรับโมดูลทั้งหมด แต่นั่นเป็นปัญหาที่แตกต่างกัน) สมมติว่าผมมีโมดูลที่เรียกว่า โมดูลนี้ทำ 3 สิ่งที่ฉันต้องการจะลบเมื่อถอนการติดตั้ง Testing_Demo testing_demoเพิ่มตารางที่เรียกว่า ดังนั้นฉันต้องวางมันลง demoเพิ่มแอตทริบิวต์ผลิตภัณฑ์ที่เรียกว่า ดังนั้นสิ่งนี้ต้องถูกลบออก มีการตั้งค่าบางอย่างในอาจจะหรืออาจจะไม่ถูกเก็บไว้ในตารางsystem->configuration การตั้งค่าทั้งหมดเหล่านี้มีเส้นทางcore_config_data testing_demo/...ดังนั้นสิ่งเหล่านี้จำเป็นต้องถูกลบออกด้วย สคริปต์การถอนการติดตั้งโมดูลของฉันควรมีลักษณะอย่างไร

1
เมื่อเราดู eavSetup มีค่าอะไรบ้างสำหรับประเภทและอินพุต
เมื่อสร้างติดตั้งสคริปต์สำหรับวีโอไอพี 2 สิ่งที่มีค่าที่มีอยู่สำหรับชนิดและชิ้นส่วนป้อนข้อมูลของeavSetup->addAttribute()? หรือฉันจะหาคำตอบได้ที่ไหน? $eavSetup->addAttribute( \Magento\Catalog\Model\Product::ENTITY, 'some_attr', [ 'type' => '', 'backend' => '', 'frontend' => '', 'label' => 'Test Attribute', 'input' => '', 'class' => '', 'source' => '', 'global' => \Magento\Catalog\Model\Resource\Eav\Attribute::SCOPE_GLOBAL, 'visible' => true, 'required' => false, 'user_defined' => false, 'default' => 0, 'searchable' => false, 'filterable' => …

3
Magento2 InstallSchema เพิ่มคอลัมน์ใหม่ลงในตารางที่มีอยู่
ฉันพยายามเพิ่มคอลัมน์ใหม่ลงในตารางที่มีอยู่ใน magento2 <?php namespace Vendor\Module\Setup; use Magento\Framework\Setup\InstallSchemaInterface; use Magento\Framework\Setup\ModuleContextInterface; use Magento\Framework\Setup\SchemaSetupInterface; /** * @codeCoverageIgnore */ class InstallSchema implements InstallSchemaInterface { /** * {@inheritdoc} * @SuppressWarnings(PHPMD.ExcessiveMethodLength) */ public function install(SchemaSetupInterface $setup, ModuleContextInterface $context) { $installer = $setup; $installer->startSetup(); $eavTable = $installer->getTable('eav_attribute'); $columns = [ 'my_column' => [ 'type' => \Magento\Framework\DB\Ddl\Table::TYPE_INTEGER, 'length' …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.