ওপেন সোর্স প্রকল্প রিলিজে কীভাবে ডাটাবেস স্কিমা পরিবর্তনগুলি পরিচালনা করবেন


9

আমি কয়েকটি কে-12 স্কুল এবং কিছু কলেজ দ্বারা ব্যবহৃত একটি ওপেন সোর্স পিএইচপি / মাইএসকিউএল ওয়েব অ্যাপ্লিকেশন পরিচালনা করি। আমিও প্রকল্পের একমাত্র বিকাশকারী। যদিও এটি আমার নিয়োগকর্তা হোস্ট করা একটি অ্যাপ্লিকেশনটির উত্স ডাউনলোডের চেয়ে কিছুটা বেশি বেশি ব্যবহার করত, আমি ডকুমেন্টেশন, সংখ্যাযুক্ত প্রকাশনা, পাবলিক চেঞ্জলগ ইত্যাদির সাথে এটিকে একটি "আসল" ওপেন সোর্স প্রকল্পে পরিণত করার জন্য গত বছর ধরে কাজ করেছি I've

আমি আপগ্রেড প্রক্রিয়াটি উন্নত করতে চাইছি এবং সম্ভাব্য বেদনাদায়ক একটি ক্ষেত্র (বিশেষত আইটি বিশেষজ্ঞ-অনাহিত বিদ্যালয়ের জন্য) রিলিজের মধ্যে ডাটাবেস স্কিমাতে পরিবর্তন আনছে। এগুলি প্রায়শই ঘটে বা কঠোর পরিবর্তন হয় না তবে আমি প্রক্রিয়া সম্পর্কে পরামর্শগুলির প্রশংসা করব।

বর্তমানে, আমি একটি নতুন ইনস্টলে ডাটাবেস সেটআপ করতে একটি বেস এসকিউএল ইনস্টল স্ক্রিপ্ট বজায় রাখছি। এতে বর্তমান প্রকাশের সম্পূর্ণ স্কিমা অন্তর্ভুক্ত রয়েছে; নতুন ইনস্টলের জন্য আর কোনও পদক্ষেপের প্রয়োজন নেই। রিলিজের মধ্যে ঘটে যাওয়া পরিবর্তনগুলি upgrade-$releasever.sqlস্ক্রিপ্টগুলিতে সংরক্ষিত থাকে এবং এড়িয়ে যাওয়া কোনও রিলিজের জন্য বাড়তিভাবে সমস্ত আপগ্রেড স্ক্রিপ্টগুলি চালানো দরকার।

শেল স্ক্রিপ্টগুলি খুব উপযুক্ত নয়, কারণ আমাদের অনেক ব্যবহারকারী শেল অ্যাক্সেস ছাড়াই হোস্টে পরিচালনা করে। অন্যান্য অগ্রাধিকারের কারণে, একটি জটিল পিএইচপি ব্রাউজার-ভিত্তিক ইনস্টলার / আপগ্রেড স্ক্রিপ্ট কার্যকর হওয়ার সম্ভাবনা কম is আমি তবে আপগ্রেডগুলি সহজ করার জন্য ব্রাউজার-ভিত্তিক পিএইচপি স্ক্রিপ্ট দিয়ে কিছু করতে চাই। এটি কিভাবে যোগাযোগ করবেন তার পরামর্শ?

উত্তর:


3

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


আমি আপনার আপগ্রেড.এফপি স্ক্রিপ্টটি দেখেছি এবং মনে হচ্ছে এটি আমার মনে ছিল। ধন্যবাদ।
মাইকেল

2

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

দ্রুপাল বেশ পরিশীলিত ডাটাবেস ইন্টারঅ্যাকশন র‌্যাপার সরবরাহ করে। এটি মডিউল বিকাশকারী থেকে প্রকৃত ডাটাবেস টাইপ বিমূর্ত করতে দেয়, তাই সার্ভার PostgreSQL, মাইএসকিউএল, ইত্যাদি চালাচ্ছে কিনা তা আপনি সত্যিই চিন্তা করেন না আপনি নিজের ইন্টারফেসও তৈরি করতে পারেন। প্রতিটি মডিউল module.install ফাইল যা ধারণ করে দেয়ার প্রয়োজন হয় hook_schemaএবং hook_installhook_schemaমডিউলটির জন্য টেবিল স্কিমা ঘোষণা করার জন্য ব্যবহৃত হয়, যখন hook_installইনস্টলেশন প্রক্রিয়াটি চালানো হয়। আর্কিটেকচার আপডেটের ধারণাটিকেও সমর্থন করে, সুতরাং যদি ব্যবহারকারী ইতিমধ্যে মডিউলটি ইনস্টল করে থাকে তবে ডান আপডেট হুকগুলি অনুরোধ করা হবে এবং টেবিলের স্কিমাটি সহজেই আপডেট করার অনুমতি দেয়।

একবার দেখুন: http://drupal.org/node/146862 এমনকি দ্রুপাল আপনার জন্য না হলেও, আমি নিশ্চিত যে আপনি তাদের স্থাপত্য সংক্রান্ত সিদ্ধান্তগুলি থেকে কিছু শিখতে পারবেন।


0

আমরা সংস্করণ ফোল্ডার তৈরি করে এটি করেছি। আমরা সেই ফোল্ডারে সমস্ত ডাটাবেস স্ক্রিপ্ট রেখেছি। যখন কোনও নতুন গ্রাহকের কাছে এটি রোল করার সময় এলো তারা সর্বশেষতম সংস্করণ পেয়েছে।

আমরা এই ফোল্ডারে কোনও আপগ্রেড স্ক্রিপ্টও রেখেছি। এইভাবে আমরা কোনও গ্রাহককে সংস্করণ x থেকে সংস্করণ y এ স্থানান্তর করতে পারি।

এটি সর্বোত্তম পদ্ধতি নয় ... তবে এটি আমাদের পক্ষে কাজ করে।


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