বিকাশ, পরীক্ষা এবং উত্পাদন সার্ভারের মধ্যে কীভাবে ডেটাবেস স্কিমা এবং ডেটা পরিচালনা করতে হয় তার ভাল উদাহরণগুলি খুঁজে পেতে আমার বেশ কষ্ট হয়েছে।
এখানে আমাদের সেটআপ। প্রতিটি বিকাশকারী আমাদের ভার্চুয়াল মেশিন এবং মাইএসকিউএল ডাটাবেস চালায়। তারা যা চায় তা করা তাদের ব্যক্তিগত স্যান্ডবক্স। বর্তমানে, বিকাশকারীরা এসকিউএল স্কিমাতে পরিবর্তন আনবে এবং তারা এসভিএন-তে সংঘটিত পাঠ্য ফাইলটিতে ডাটাবেসের একটি ডাম্প করবে।
আমরা একটি অবিচ্ছিন্ন ইন্টিগ্রেশন ডেভলপমেন্ট সার্ভার স্থাপন করতে চাই যা সর্বদা সর্বশেষতম প্রতিশ্রুতিবদ্ধ কোডটি চলমান থাকবে। আমরা যদি এখন এটি করি তবে এটি প্রতিটি বিল্ডের জন্য এসভিএন থেকে ডেটাবেস পুনরায় লোড করবে।
আমাদের কাছে একটি পরীক্ষা (ভার্চুয়াল) সার্ভার রয়েছে যা "রিলিজ প্রার্থীদের" চালায়। পরীক্ষা সার্ভারে স্থাপন করা বর্তমানে একটি খুব ম্যানুয়াল প্রক্রিয়া, এবং সাধারণত আমাকে এসভিএন থেকে সর্বশেষতম এসকিউএল লোড করা এবং এটি টুইট করা জড়িত। এছাড়াও, পরীক্ষার সার্ভারে থাকা ডেটাগুলি বেমানান। সর্বশেষ বিকাশকারী তার স্যান্ডবক্স সার্ভারে যা যা পরীক্ষা করার ডেটা করেছিল তা আপনি শেষ করেন।
যেখানে সবকিছু ভেঙে যায় তা হল উত্পাদনের জন্য মোতায়েন। যেহেতু আমরা পরীক্ষার ডেটা সহ লাইভ ডেটা ওভাররাইট করতে পারি না, এর মধ্যে ম্যানুয়ালি সমস্ত স্কিমা পরিবর্তনগুলি পুনরায় তৈরি করা জড়িত। ডেটা ম্যানিপুলেট করতে যদি স্কিমা পরিবর্তন বা রূপান্তর স্ক্রিপ্টগুলির একটি বিশাল সংখ্যা থাকে তবে এটি সত্যই লোমশ হয়ে উঠতে পারে।
যদি সমস্যাটি কেবল স্কিমা ছিল, তবে এটি একটি সহজ সমস্যা হতে পারে তবে ডেটাবেজে "বেস" ডেটা রয়েছে যা বিকাশের সময় আপডেট হয় যেমন সুরক্ষা এবং অনুমতি সারণীতে মেটা-ডেটা।
অবিচ্ছিন্ন সংহতকরণ এবং এক-পদক্ষেপ-বিল্ডসের দিকে এগিয়ে যাওয়ার ক্ষেত্রে এটিই সবচেয়ে বড় বাধা see আপনি কিভাবে আপনি তার সমাধানের?
একটি ফলো-আপ প্রশ্ন: আপনি কীভাবে ডাটাবেস সংস্করণগুলি ট্র্যাক করবেন যাতে আপনি জানেন যে কোনও প্রদত্ত ডাটাবেসের উদাহরণ আপগ্রেড করতে কোন স্ক্রিপ্টগুলি চালানো উচিত? ল্যান্সের মতো কোনও সংস্করণ টেবিলটি কি স্ট্যান্ডার্ড পদ্ধতির নীচে উল্লেখ করেছে?
ট্যারান্টিনো রেফারেন্সের জন্য ধন্যবাদ। আমি কোন নেট পরিবেশে নেই, তবে আমি তাদের ডেটাবেস চেঞ্জমেনজেন্ট উইকি পৃষ্ঠাটি খুব সহায়ক বলে মনে করেছি। বিশেষত এই পাওয়ারপয়েন্ট উপস্থাপনা (.ppt)
আমি একটি পাইথন স্ক্রিপ্ট লিখতে যাচ্ছি যা *.sql
একটি প্রদত্ত ডিরেক্টরিতে স্ক্রিপ্টগুলির নাম ডাটাবেসের একটি টেবিলের বিপরীতে পরীক্ষা করে এবং ফাইলের নামের প্রথম অংশটি তৈরি করে এমন একটি পূর্ণসংখ্যার উপর ভিত্তি করে সেখানে নেই যা চালায়। যদি এটি খুব সহজ সমাধান হয় তবে আমার সন্দেহ যেমন এটি হবে তবে আমি এটি এখানে পোস্ট করব।
আমি এটির জন্য একটি ওয়ার্কিং স্ক্রিপ্ট পেয়েছি। এটি ডিবি উপস্থিত না থাকলে এবং প্রয়োজনীয় হিসাবে আপগ্রেড স্ক্রিপ্টগুলি পরিচালনা করে running একটি বিদ্যমান ডাটাবেস মুছা এবং একটি ফাইল থেকে পরীক্ষার ডেটা আমদানির জন্য সুইচও রয়েছে। এটি প্রায় ২০০ লাইন, তাই আমি এটি পোস্ট করব না (যদিও আগ্রহ থাকলে আমি এটি পেস্টবিনে রেখে দিতে পারি)।