@ ইফফান সাইফ হিসাবে, ম্যাজেন্টো ১.6 থেকে মাল্টি-আরডিবিএম সমর্থন পেয়েছে। তবে বাস্তব বিশ্বে আমি কেবল মাইএসকিএল ব্যাকেন্ড জানি।
এটি বুঝতে গুরুত্বপূর্ণ, যে ম্যাজেন্টোতে বিভিন্ন ব্যাকেন্ডের জন্য আলাদা আলাদা ইনস্টল / আপগ্রেড / ডেটা স্ক্রিপ্ট থাকতে পারে। আপনি যদি একটি বিশেষ সূচক-প্রকার চান যা মাইএসকিএল দ্বারা সমর্থিত তবে মানক-এসকিউএল দ্বারা নয় তবে আপনি একটি মাইএসকিএল 4-ইনস্টল-1.0.0.php স্ক্রিপ্ট প্রয়োগ করতে পারেন। যদি আপনার স্ক্রিপ্টটি জেনেরিক হয় তবে ইনস্টল -০.০.০. পিএইচপি ব্যবহার করুন
আপনি যদি Mage_Core_Model_Resource_Setup এ একবার দেখে নিই তবে আমি দুটি আন্তঃসংশ্লিষ্ট জিনিস পেতে পারি:
- আপনি আপনার ফাইলগুলির নাম (% s -)% s-VERSION can (পিএইচপি | এসকিউএল) রাখতে পারেন
- আপনার যদি দুটি ইনস্ট্রিপ্ট স্ক্রিপ্ট থাকে (তবে ডেটা স্ক্রিপ্টগুলির সাথে থাকে তবে এটি একই (অ্যাপ / কোড / কোর / ম্যাজ / কোর / মডেল / রিসোর্স / সেটআপ.পিএফপি: 520)) ম্যাজেন্টো জেনেরিক স্ক্রিপ্টের উপরে বিশেষ স্ক্রিপ্টটিকে পছন্দ করে (এক হিসাবে আশা করবে)
অ্যাপ্লিকেশন / কোড / কোর / পুরোনো যাদুকর / কোর / মডেল / রিসোর্স / Setup.php: 488
$regExpDb = sprintf('#^%s-(.*)\.(php|sql)$#i', $actionType);
$regExpType = sprintf('#^%s-%s-(.*)\.(php|sql)$#i', $resModel, $actionType);
while (false !== ($file = $handlerDir->read())) {
$matches = array();
if (preg_match($regExpDb, $file, $matches)) {
$dbFiles[$matches[1]] = $filesDir . DS . $file;
} else if (preg_match($regExpType, $file, $matches)) {
$typeFiles[$matches[1]] = $filesDir . DS . $file;
}
}
[...]
foreach ($typeFiles as $version => $file) {
$dbFiles[$version] = $file;
}
সতর্কতা অবলম্বন করুন, আপনি যদি আপনার স্ক্রিপ্টটির নাম দেন তবে .sql
এটি সরাসরি ডাটাবেসে ডাকা হয়:
// app/code/core/Mage/Core/Model/Resource/Setup.php:621
switch ($fileType) {
case 'php':
$conn = $this->getConnection();
$result = include $fileName;
break;
case 'sql':
$sql = file_get_contents($fileName);
if (!empty($sql)) {
$result = $this->run($sql);
এছাড়াও, যখন আমার সেটআপ স্ক্রিপ্টটি চলছে না তা অনুসন্ধান করার জন্য কী চলছে?
আমি আমার ইনস্টল / আপগ্রেড ফাইলের শুরুতে একটি ডাই ('স্যাডফ') পছন্দ করি, কারণ এটি কল করা হলে আমি এটি একাধিকবার চালাতে পারি, তাই আমি যাচাই করতে পারি, আমি যে সমস্ত ভেরিয়েবলগুলি সেট করেছিলাম তার পরিবর্তে কিছু পরিবর্তন হওয়ার আগেই হয় check ডাটাবেস আমি যদি পর্দায় 'স্যাডফ' দেখি তবে আমি জানি, স্ক্রিপ্টটি চলছে।
আমি লোডগুলি ম্যাজেন্টো (সাদফের পরিবর্তে) করি, এটি ডিবাগ করার সময় এসেছে, আমার দুটি মানক ত্রুটি হ'ল:
- আমি কনফিগারেশনে স্ক্রিপ্ট যুক্ত করতে ভুলে গেছি
- আমার ডিরেক্টরিটি
sql/
ভুলে গেছে, যেমন sql/install-1.0.0.php
পরিবর্তেsql/my_module_setup/install-1.0.0.php
এবং যেহেতু আমার মনে হয় এটি এখানে ফিট করে, আপনার ভেরিয়েবল নামগুলি সম্পর্কে সতর্কতা অবলম্বন করুন: http://blog.fabian-blechschmidt.de/articles/file-kills-setup-script.html
আপডেট করুন
@ রাউভেন-রাইকার টুইটারের মাধ্যমে যুক্ত করেছেন যে ডেটা- এবং মিস করা mysql4- ম্যাজেন্টো ১.6 এ যুক্ত হয়েছিল। আপনার যদি পিছনের দিকে সামঞ্জস্যতা প্রয়োজন সাবধান!