স্ক্রিপ্টগুলি ইনস্টল করুন: সারণী তৈরি করা এবং বিদ্যমানগুলি আপডেট করা


22

একটি প্রশ্ন আছে, সম্প্রতি আমি ডিবিতে প্রচুর টেবিল নিয়ে একটি মডিউল বিকাশ করছিলাম এবং ধারণাটি প্রায়শই পরিবর্তিত হচ্ছিল, তাই ডিবিতে বিদ্যমান সারণীগুলি পরিবর্তন করা দরকার ছিল এবং আমি টেবিল তৈরির স্ক্রিপ্ট এবং টেবিল আপগ্রেডিংয়ের মধ্যে পার্থক্য লক্ষ্য করেছি। আপনি এখানে যান। নীচে সারণী কোড তৈরি করা দেখুন:

$table = $installer->getConnection()
    ->newTable($installer->getTable('module/table'))
    ->addColumn('id', Varien_Db_Ddl_Table::TYPE_INTEGER, 9, array(
        'nullable' => false,
        'primary' => true,
        'identity' => true,
        'auto_increment' => true
    )
);

নতুন টেবিল () ফাংশনটি ভেরিয়েন_ডিবি_ডিডিএল_ট্যাবলের উদাহরণ দেয় এবং টেবিল স্ক্রিপ্ট আপগ্রেড করে আলাদাভাবে টেবিলটিতে নতুন কলাম যুক্ত করতে ব্যবহার করে, একবার দেখুন:

$installer->getConnection()
    ->addColumn($tableName, 'test', array(
        'nullable' => false,
        'length' => 9,
        'type' => Varien_Db_Ddl_Table::TYPE_INTEGER,
        'comment' => 'Test Field'
    )
)

এই দুটি অ্যাড কলাম ফাংশন পৃথক এবং এগুলিও বিভিন্ন শ্রেণীর পদ্ধতি এবং তারা প্রতিবার আমার সিনট্যাক্স পরিবর্তন করার প্রয়োজনে আমাকে দু: খিত করে।
সুতরাং এখানে প্রশ্নটি রয়েছে, ভেরিয়েন_ডিবি_ডিডিএল_টিবল ক্লাসের উদাহরণ ব্যবহার করে বিদ্যমান টেবিলটি আপডেট করার উপায় আছে কি?

উত্তর:


15

ভারিয়েন_ডিবি_ডিডিএল_ট্যাবল অবজেক্টটি ব্যবহার করে বিদ্যমান টেবিলটি সংশোধন করার কোনও উপায় বলে মনে হচ্ছে না। আপনি যদি সেই শ্রেণীর কোডটিতে যান তবে আপনি কোনও অঞ্চল দেখতে পাবেন না যেখানে এটি টেবিলের বিদ্যমান স্কিমাটিতে টানছে বা টেবিলে কোনও উপায়ে উপস্থিত রয়েছে কিনা তা পরীক্ষা করে দেখুন। যদি আপনি এটি টেবিলটি সংশোধন করার জন্য ব্যবহার করেন তবে এটির প্রয়োজন হবে।

অতিরিক্তভাবে, ভারিয়ান_ডিবি_এডাপ্টার_আইনফেরসে 'আপডেট টেবিল'-এর লাইনে কোনও পদ্ধতি নেই যা একটি ভারিয়ান_ডিবি_ডিডিএল_ট্যাবলটিকে পরামিতি হিসাবে গ্রহণ করে।

এটি অবশ্যই ম্যাজেন্টোতে those কোডগুলির গন্ধগুলির মধ্যে একটি, কারণ আপনার কাছে দুটি ভিন্ন ভিন্ন কোড রয়েছে যা বিভিন্ন উপায়ে একই জিনিসটি সম্পাদন করার চেষ্টা করছে। শুধুমাত্র বাগগুলিতে নেতৃত্ব দেবে।


সুন্দর উত্তর, আমি অনেক কিছু ভেবেছি, ধন্যবাদ :)
নিক

2
এবং এখন এটি ঠিক করার জন্য একটি ম্যাজেন্টো 2 টানার অনুরোধ করুন :-)
অ্যালেক্স

6

যদি এটি প্রকল্পের ক্ষেত্রের মধ্যে থাকে তবে আপনি সম্ভবত উল্লেখ করেছেন যে মডেলটি খুব ঘন ঘন পরিবর্তিত হয় যদি আপনি কোনও ইএভি মডেলের পরিবর্তনের দিকে নজর রাখতে চান। এটি আপনাকে সামনে এবং পিছনে বিভ্রান্ত করার ডেটা মাইগ্রেশনের ঝামেলা বাঁচাতে পারে। এখানে একটি নিবন্ধ যা ম্যাগানোতে EAV এর মূল বিষয়গুলি ব্যাখ্যা করে যাতে আপনি এটির মূল্যায়ন করতে পারেন এবং সিদ্ধান্ত নিতে পারেন এটি আপনার প্রকল্পের জন্য উপযুক্ত কিনা।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.