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

2
Magento2: วิธีอัพเกรดสคีมาฐานข้อมูล
ฉันกำลังทำงานกับโมดูลที่กำหนดเองคุณภาพเยี่ยมในโมดูลมีSetup\InstallSchema.phpไฟล์ที่ติดตั้งมาก่อน ฉันได้เพิ่มเขตข้อมูลฐานข้อมูลเพิ่มเติมในInstallSchema.phpดังนั้นฉันต้องการปรับปรุงโครงสร้างตาราง แต่ตารางไม่ได้ใช้การเปลี่ยนแปลงใด ๆ ฉันจะใช้การเปลี่ยนแปลงสคีมากับตารางฐานข้อมูลได้อย่างไร ฉันมีคำสั่งกระบวนการ cli เพื่ออัปเดตสคีมา แต่ไม่สำเร็จ php bin/magento setup:db-schema:upgrade และ php bin/magento setup:upgrade

1
จะเพิ่ม foreign key ในตารางโดยทางโปรแกรมได้อย่างไร
ฉันกำลังพยายามเพิ่มชุดของตารางใหม่และฉันกำลังพยายามเพิ่มคีย์ต่างประเทศเพื่อเชื่อมโยงตารางเหล่านี้ ฉันดูออนไลน์เพื่อพยายามค้นหาข้อมูลบางอย่างเกี่ยวกับaddForeignKey()แต่ไม่พบอะไรเลย มองVarien_Db_Adapter_Interface::addForeignKey()และMage_Core_Model_Resource_Setup::getFkName()ฉันคิดว่าฉันมีการตั้งค่าด้านล่างถูกต้อง ->addForeignKey( $installer->getFkName('namespace_module/shop', 'area_id', 'namespace_module/area','area_id'), $installer->getTable('namespace_module/shop'), 'area_id', $installer->getTable('namespace_module/area'), 'area_id', Varien_Db_Ddl_Table::ACTION_CASCADE, Varien_Db_Ddl_Table::ACTION_CASCADE ) แต่ข้อยกเว้นบอกว่าแตกต่างกัน Zend_Db_Exception Object ( [_previous:Zend_Exception:private] => [message:protected] => Undefined column "shop_locator_shop" [string:Exception:private] => [code:protected] => 0 [file:protected] => /Users/myname/Sites/site/www/lib/Varien/Db/Ddl/Table.php [line:protected] => 450 [trace:Exception:private] => Array ( [0] => Array ( [file] => /Users/myname/Sites/site/www/app/code/local/Namespace/Module/sql/namespace_module_setup/install-0.1.0.php [line] => 110 …

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

2
ลบมุมมองร้านค้าโดยทางโปรแกรมในสคริปต์อัปเกรด
ฉันต้องการที่จะลบมุมมองการจัดเก็บโปรแกรม ดูMage_Adminhtml_System_StoreController::deleteStorePostAction()นี่เป็นเรื่องง่าย ๆ (ย่อรหัสเล็กน้อย): $model = Mage::getModel('core/store')->load($id); if ($model->getId() && $model->isCanDelete()) { $model->delete(); Mage::dispatchEvent('store_delete', array('store' => $model)); } ฉันต้องการใส่รหัสนี้ลงในสคริปต์อัปเกรดข้อมูลเพื่อให้การลบดำเนินการโดยอัตโนมัติ ปัญหาคือขณะที่เรียกใช้สคริปต์อัปเกรดในdata/Magento จะเรียกเฉพาะผู้สังเกตเหตุการณ์ที่กำหนดค่าในglobalพื้นที่ (ดูการปรับปรุงโครงสร้างวีโอไอพีกับการอัพเดทข้อมูล ) ผู้สังเกตการณ์บางคนชอบenterprise_cmsและenterprise_searchสำหรับเหตุการณ์store_delete_afterที่กำหนดไว้ในadminhtmlพื้นที่เพื่อให้พวกเขาจะไม่ถูกประหารชีวิต การลบมุมมองร้านค้าจะไม่ได้รับการจัดการเหมือนกับการลบที่ดำเนินการในแบ็กเอนด์ คุณจัดการการดำเนินการเช่นนี้ได้อย่างไร โหลดพื้นที่กิจกรรมเพิ่มเติมด้วยตัวคุณเองในสคริปต์อัพเกรด (ฉันกลัวเรื่องนั้น) อย่าทำการดัดแปลงข้อมูลแบบนั้นในสคริปต์การอัปเกรด แต่ทำให้นักเวทย์ของคุณอยู่ในสถานที่ศักดิ์สิทธิ์ที่ซ่อนเร้นและดำเนินการด้วยตนเอง?

1
สร้าง Magento 2 Upgrade Script เพื่อเพิ่ม / อัพเดทฟิลด์ใหม่ลงในตารางโมดูลที่กำหนดเอง
ใครมีความคิด / ข้อเสนอแนะเกี่ยวกับการสร้าง Magento 2 (เวอร์ชั่น CE เสถียร) สคริปต์อัพเกรด (ในโมดูลที่กำหนดเอง) สำหรับการเพิ่ม / อัปเดตฟิลด์ใหม่ลงในตารางที่กำหนดเอง? ฉันรู้เกี่ยวกับ "InstallSchema" แต่มีบางอย่างเช่น "UpgradeSchema" สำหรับอัปเกรดตารางโมดูลหรือไม่ โปรดอธิบายโดยละเอียดพร้อมตัวอย่าง

2
Magento 2: - เพิ่ม attribute select ให้กับหมวดหมู่
ฉันต้องการเพิ่มคุณสมบัติการเลือก / วางลงในหมวดหมู่และแสดงในแบ็กเอนด์เพื่อให้เจ้าของร้านเลือกได้ หลังจากการวิจัยฉันพบสิ่งต่อไปนี้ที่ต้องทำ: สร้างแอตทริบิวต์ผ่าน Setupscript รวมไว้ในการประกาศส่วนประกอบ UI ดังนั้นนี่คือสิ่งที่ฉันได้ทำ: public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context) { /** @var $eavSetup \Magento\Eav\Setup\EavSetup */ $eavSetup = $this->eavSetupFactory->create(['setup' => $setup]); $eavSetup->addAttribute( \Magento\Catalog\Model\Category::ENTITY, 'attribute_code', [ 'type' => 'int', 'label' => 'Top Navigation CMS Block', 'input' => 'select', 'source' => 'Magento\Catalog\Model\Category\Attribute\Source\Page', 'required' => false, 'sort_order' => …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.