আমরা আজ ডাটাবেস মোতায়েনের কৌশলগুলি নিয়ে আলোচনা করেছি, আমাদের বর্তমান প্রক্রিয়ায় বেশ কয়েকটি সাম্প্রতিক ব্যর্থতা দেখেছি এবং এমন পরিস্থিতি দেখেছি যেখানে আমরা কোনও স্থাপনা ফিরিয়ে আনতে চাই তবে অ্যাপ্লিকেশনটির পুরানো সংস্করণটি নতুন সংস্করণের বিপরীতে কখনও পরীক্ষা করা হয়নি। তথ্যশালা.
একদিকে, মাইগ্রেশন-স্টাইল মোতায়েন রয়েছে, যেখানে আপনার ভার্সন-আপ নির্দেশনা এবং একটি সংস্করণ-ডাউন নির্দেশনা রয়েছে (সেগুলি এসকিউএল বা আপনার অ্যাপ্লিকেশন ভাষায় লিখিত হোক না কেন) এবং আপনার অ্যাপ্লিকেশন জানে যে এটির কী সংস্করণটি নেওয়া উচিত।
এগুলি সহজ, এবং আমরা প্রায়শই রোলব্যাক করব না, বিকাশকারীরা সরল বিষয়ে আগ্রহী ke যাইহোক, আপনি যখন কোনও ক্ষেত্র / সারণি যুক্ত করছেন তখন ঝুঁকি থাকে এবং আপনি পিছনে ফিরে যাওয়ার আগে সেই ক্ষেত্রটি জনবহুল হয়। বা আরও খারাপ, যেখানে আপনি আগের সংস্করণের সাথে প্রাসঙ্গিক ডেটা ফেলেছেন।
অন্যদিকে, আমরা একটি আপগ্রেড, রোলব্যাক, রোলফরওয়ার্ড পদ্ধতির বিষয়টি বিবেচনা করতে পারি যেখানে মাইগ্রেশনগুলির মতো পিছনে রোলিং ততটা কঠোর নয়। উদাহরণস্বরূপ, আপগ্রেড একটি নন-অযোগ্য ক্ষেত্র যুক্ত করতে পারে; রোলব্যাক এটিকে naclaable করে তোলে যাতে পুরানো অ্যাপ্লিকেশনটি যত্ন না করে; রোলফোর্ডটি নাল ক্ষেত্রগুলিকে পপুলেট করে এবং এটি আবার অ-অযোগ্য হয়।
এটি ডেটা ধরে রাখে তবে কোড এবং পরীক্ষা উভয়ই জটিল (দুঃখের বিষয়, আমাদের স্বয়ংক্রিয় ইন্টিগ্রেশন পরীক্ষাগুলি অনেকটা অস্তিত্বহীন এবং আমরা যখন এটি সংশোধন করছি, এর মধ্যে আমাদের একটি সমস্যা রয়েছে)।
এগুলি দিয়ে সমস্যাগুলি প্রশমিত করার নিরাপদ উপায় আছে কি? আমার অন্যান্য বিকল্পগুলি বিবেচনা করা উচিত? আপনি কি ভাগ করে নিতে চান খারাপ অভিজ্ঞতা আছে যা পরে আমার ব্যথা বাঁচাতে পারে?