আমি এই বিষয়টি সম্পর্কে অনেক চিন্তাভাবনা করেছি এবং পড়েছি। এটি কনফিগারেশন নিয়ন্ত্রণ এবং পরিচালনা কৌশল পরিবর্তন করার একটি বিস্তৃত বিষয়। এই বিষয়ে সিএমএমআইয়ের একটি ডোমেন রয়েছে। এমনকি সিএমএমআই 3-5-এর স্বীকৃতি অর্জনকারী সংস্থাগুলিতেও তারা কখনও কখনও তাদের ডাটাবেসগুলিকে নিয়ন্ত্রণ করে না।
এই প্রশ্নের উত্তর দেওয়া উচিত প্রতিবন্ধকতাগুলি মাথায় রেখে ।
- আপনার একজন রক্ষক রয়েছে এবং প্রতিটি ডিডিএল এই রক্ষক দ্বারা সম্পাদিত হয়।
- অন্যান্য লোকদের ডিডিএল বিবৃতি কার্যকর করার ক্ষমতা রয়েছে।
- পরিবর্তনগুলি কী হয়েছে তা কেবল আপনাকে লগ করতে হবে তবে আপনাকে বিস্তৃত পার্থক্যের তুলনা করার দরকার নেই।
- আপনার ডাটাবেস ডিজাইনটি বাহ্যিক সরঞ্জামের মাধ্যমে করা হয় তারপর ডাটাবেজে প্রকাশিত হয়। এই বাহ্যিক সরঞ্জামটি এমনকি সোর্স নিয়ন্ত্রণে ডিডিএল স্ক্রিপ্ট হতে পারে। তবে মূল বিষয় হ'ল এটি আপনার সোর্স নিয়ন্ত্রণ করে এটি ডাটাবেসে প্রকাশ করুন।
- আপনার তাত্ক্ষণিক পরিবর্তনগুলি জানতে হবে না তবে সময়ে সময়ে: যেমন প্রতি ঘন্টা, প্রতিদিন।
- আপনার একটি সংজ্ঞায়িত সার্ভার কাঠামো রয়েছে: বিকাশ, পরীক্ষা, উত্পাদন। এবং একটি ভাল পরীক্ষার কৌশল।
উত্তর 1
- যদি 1, 4,6 সত্য হয় তবে আপনি একটি বাহ্যিক উত্স নিয়ন্ত্রণ ব্যবহার করতে পারেন। উদাহরণ স্বরূপ
- এমবারকাডেরোর একটি ডাটাবেস পরিবর্তন পরিচালনার সরঞ্জাম রয়েছে ( http://www.embarcadero.com/products/db- بدل-manager-xe )। যা একটি ডাটাবেস (ওরাকল) বিপরীত ইঞ্জিনিয়ার এবং এটিকে তাদের উত্স নিয়ন্ত্রণে রাখার ক্ষমতা রাখে। তারপরে যে কোনও সংখ্যক বিকাশকারী, ডিবিএ এই স্কিমাতে পৌঁছাতে এবং এতে পরিবর্তন করতে পারে।
- ওরাকল এসকিউএল ডিজাইনার এই পদ্ধতির অনুরূপ।
- আপনাকে উত্স নিয়ন্ত্রণে টেবিল স্ক্রিপ্টগুলি তৈরি করা (এসএনএন, মুরুরিয়াল ইত্যাদি) এবং সেগুলি একই জিনিস বজায় রাখা।
- http://www.liquibase.org উপরের স্বয়ংক্রিয় পদ্ধতি।
- আমি কোড জেনারেটর লিখেছিলাম যা ডাল (ডেটা অ্যাক্সেস স্তর), ডিডিএল (সারণী তৈরি করুন) বিবৃতি উত্পন্ন করে। আমরা তাদের উত্স নিয়ন্ত্রণ এবং সেখানে রক্ষণাবেক্ষণ করা। আমি মনে করি তরলবাইসের মতো নিবেদিত সমাধান আরও ভাল কাজ করতে পারে।
এই পদ্ধতির 6 টি থাকলে ভাল কাজ করে You আপনি ডিডিএল স্টেটমেন্টগুলি রাখেন, এটি উত্স নিয়ন্ত্রণে এটিও একটি কোড। কেউ যথাযথ বিবেচনা ছাড়াই টেস্ট এবং প্রোডাকশন সার্ভার পরিবর্তন করবে না।
অসুবিধাগুলি হ'ল যদি আপনি কোনও কারণে উত্পাদন বা টেস্ট সার্ভারগুলিতে পরিবর্তন করেন, দ্রুত ত্রুটি ফিক্স, প্রাথমিক কী পরিবর্তন ইত্যাদি You যেহেতু আসলে ডেভলপমেন্ট সার্ভার হ'ল আপনার প্রকৃত সত্য। অন্য উপায় না।
এটি একটি খুব বিকাশমুখী দৃষ্টিভঙ্গি। তবে আপনি যখন প্রথম কোনও নতুন মডিউল বিকাশ করবেন তখন এটি বেশ ভাল কাজ করে।
উত্তর 2
- যদি 1 এবং 6 সত্য হয়:
উত্তর 1 এর অনুরূপ পন্থা একটি ডেভলপমেন্ট সার্ভার বজায় রাখা। প্রত্যেকে এটি ব্যবহার করে এটি পরিবর্তন করে। সময় আপডেট করার সময় আসে না। আপনি একটি ডাটাবেস তুলনা সরঞ্জাম ব্যবহার করুন। এগুলি স্ক্রিপ্ট হিসাবে পান, উত্স নিয়ন্ত্রণে রাখুন।
- Red Gate Schema Compare supports Oracle
- Embercadero has similar tool
- https://github.com/carbonfive/db-migration
- http://www.sumsoftsolutions.com/svco/ (I have not used this product but I believe it belongs to this category.)
- Rails Active Migration (http://www.oracle.com/technetwork/articles/kern-rails-migrations-100756.html)
উত্তর 1 এবং উত্তর 2 এর মধ্যে পার্থক্য হল, উত্তর 1 এ আপনি পুরো ডাটাবেসের জন্য ডিডিএল স্টেটমেন্ট সংগ্রহ করেন এবং আপনি সেগুলি সঞ্চয় করেন। উত্তর 2 এ আপনাকে পরিবর্তনের প্রতিটি সংস্করণ সংরক্ষণ করতে হবে।
- শুরু
- V1 থেকে
- থেকে V2
- V3
- ...
আপনি যদি কোনও টেবিলে একটি কলাম রাখেন এবং পরে এটি সরিয়ে ফেলার সিদ্ধান্ত নেন। আপনি স্ক্রিপ্টগুলি এটিকে উত্তর 2 এ দেখান যখন উত্তর 1 এ আপনি কেবল সর্বশেষ সংস্করণটি দেখতে পাবেন। এবং পার্থক্যগুলি দেখতে আপনার ভি 2 এবং ভি 1 এর তুলনা করতে হবে। ব্যক্তিগতভাবে আমি উত্তরটি আরও ভাল পছন্দ করি যেহেতু আমি সহজেই শুরু এবং ভি 3, ভি 1 এবং ভি 3 এর তুলনা করতে পারি। উত্তর 2 এ, আমাকে সমস্ত পরিবর্তন সন্ধান করা উচিত। উত্স নিয়ন্ত্রণে উত্তরের 2 স্ক্রিপ্টে একটি বিশাল ব্যাং, জটিল স্ক্রিপ্ট থাকে s তথ্য খুঁজে পাওয়া শক্ত।
উত্তর 3
যদি 3 সত্য হয়। নোট করুন যে এই পরিস্থিতিতে আপনার বাধা নেই 6, এটি: আপনার কাছে বিকাশ, পরীক্ষা, পণ্য সার্ভার নেই। শুধুমাত্র প্রোডাকশন সার্ভার। আপনি কী পরিবর্তন হয়েছে তা লগ করতে ডিডিএল ট্রিগার ব্যবহার করতে পারেন। এটি বেশিরভাগই লোকদের তাদের ডিডিএল অনুদানকে অপব্যবহার থেকে নিরুৎসাহিত করার জন্য ব্যবহৃত হয়। যদি কোনও সমস্যা দেখা দেয় তবে আপনি দায়ী খুঁজে পেতে পারেন। এটি কাজ করার জন্য প্রত্যেক ব্যক্তির তাদের ব্যবহারকারীর অ্যাকাউন্টের সাথে সংযুক্ত হওয়া উচিত এবং অ্যাপ্লিকেশন অ্যাকাউন্টে কোনও ডিডিএল অনুদান থাকা উচিত নয়। যেহেতু প্রতিটি বিকাশকারী অ্যাপ্লিকেশন অ্যাকাউন্ট জানে এবং এটি ব্যবহার করতে পারে।
উত্তর 4
যদি আপনার 3 এবং 5 থাকে তবে নোট করুন যে এই পরিস্থিতিতে আপনার বাধা 6 নেই, এটি: আপনার কাছে বিকাশ, পরীক্ষা, পণ্য সার্ভার নেই vers শুধুমাত্র প্রোডাকশন সার্ভার। পরিবর্তনের পরিবর্তে ট্রিগার ট্রিগার। আপনি বাহ্যিক সরঞ্জাম ব্যবহার করে উত্স নিয়ন্ত্রণে পরিবর্তনগুলি আবিষ্কার করতে এবং ডিডিএল স্ক্রিপ্টগুলি সংরক্ষণ করে।
এই সরঞ্জামগুলির মধ্যে কে পরিবর্তনগুলি করেছে তা রেকর্ড করার ক্ষমতা থাকলে এটি কার্যকর হবে। নোট করুন যে এই সমাধানটিতে আপনি অতিরিক্ত ডিডিএল আলগা করে যা অন্তরগুলিতে করা হয়।