উত্তর:
দেখুন Mage_Eav_Model_Entity_Setup::removeAttribute()
। এটি দুটি আর্গুমেন্ট লাগে - প্রথমটি হ'ল সত্তা কোড, এবং দ্বিতীয়টি বৈশিষ্ট্য কোড।
সম্পাদনা করুন - ইনস্টলেশন-বিহীন সুযোগ থেকে চালানোর জন্য:
<?php
include 'app/Mage.php';
Mage::app();
$setup = Mage::getResourceModel('catalog/setup','catalog_setup');
$setup->removeAttribute('catalog_product','attr_code');
catalog/setup
সঙ্গে customer/setup
, catalog_setup
সঙ্গে customer_setup
, এবং catalog_product
সঙ্গে customer
।
ম্যাজেন্টোর প্রথম নিয়মটি হ'ল: সরাসরি ডেটাবেস সম্পাদনা করবেন না।
আমি স্বীকার করি যে আমি বহুবার এই নিয়মটি ভঙ্গ করেছি, সুতরাং ...
আপনি বৈশিষ্ট্যগুলি মুছতে পারেন eav_attribute
, সীমাবদ্ধতার সাথে ON DELETE CASCADE
বাকী টেবিলগুলি পরিষ্কার করা উচিত।
তবে আমি এখনও মনে করি আপনার পরিষ্কার উপায় নেওয়া উচিত:
$attributeId = 55;
Mage::getModel('catalog/resource_eav_attribute')->load($attributeId)->delete();
এটি বেশি সময় নিবে না এবং আপনি নিজের সাথে শান্তি বোধ করবেন কারণ আপনি নিয়ম ভঙ্গ করেন নি।
আপনি কোন পদ্ধতিটি চয়ন করছেন তা গুরুত্বপূর্ণ নয়, তবে উভয় ক্ষেত্রেই আপনার ডিবিকে সমর্থন দেওয়া।
DELETE FROM eav_attribute WHERE eav_attribute.attribute_code = "my_attribute";
$installer->removeAttribute('catalog_product', 'my_attribute1');
বা$installer->removeAttribute('catalog_category', 'my_attribute2');
আলাদা কোডটিতে এই কোডটি ব্যবহার করার উপায় আছে কি? আমি রুট ফোল্ডারে ফাইল স্থাপন করতে (যেখানে Magento এর চাইindex.php
), যাতে এটি সম্ভব হবে ওয়েব ব্রাউজারে স্ক্রিপ্ট কল করতে:example.com/delete_attributes.php/
। তুমি কি আমাকে সঠিক দিকনির্দেশনা দিবে?