আপনি কীভাবে অবিচ্ছিন্ন ডাটাবেস মাত্রা পরিচালনা করবেন?


9

গত দু'মাস ধরে আমি ডাটাবেসগুলির মধ্যে মুক্তির পরিচালনা পরিচালনা করার জন্য সমাধানগুলি বা অনুশীলনগুলি সন্ধান করছি। আমি এটিকে পরিচালনা করার জন্য সর্বোত্তম প্রক্রিয়া হিসাবে লোকেরা কী দেখছেন তা সন্ধান করছি।

আমাদের ডাটাবেসের জন্য আমাদের 3 টি পরিবেশ রয়েছে:

  • উন্নয়ন
  • ব্যবহারকারী স্বীকৃতি পরীক্ষা (ইউএটি)
  • উত্পাদনের

সমস্যাটি হ'ল কখনও কখনও আমরা আমাদের বিকাশের ডেটাবেজের মধ্যে বেশ কয়েকটি জিনিসে পরিবর্তন আছি এবং স্থাপনার সময় আসি, কিছু বৈশিষ্ট্য ইউএটি-তে প্রকাশের জন্য প্রস্তুত নাও হতে পারে।

সম্প্রতি আমরা রেড গেট এসকিউএল উত্স নিয়ন্ত্রণটি আমাদের সমস্ত সত্ত্বাকে (নিয়মিত কমিট দিয়ে) সঞ্চয় করার জন্য ব্যবহার শুরু করেছি।

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

একটি প্রক্রিয়া সম্পর্কে কোন পরামর্শ?

ধন্যবাদ


দেখে মনে হচ্ছে আপনার ডাটাবেস স্ক্রিপ্টগুলি আপনার "প্রকৃত" কোডের মতো একই উত্স নিয়ন্ত্রণে নেই। কেন? আপনি কি এটি "উত্স কোড" হিসাবে বিবেচনা করতে এবং স্বতন্ত্র শাখার সাথে রাখতে পারেন?
মাইক এম।

আমরা বর্তমানে কেবলমাত্র সোর্স নিয়ন্ত্রণে স্ক্রিপ্টগুলির বিকাশ সংস্করণ সংরক্ষণ করি এবং সক্রিয় বিকাশের সাথে ইউএটি / উত্পাদন উভয়ই সিঙ্কের বাইরে চলে যায়। উত্স নিয়ন্ত্রণে থাকা প্রতিটি স্ক্রিপ্টগুলি প্রতিবার কোনও বিকাশকারী প্রতিশ্রুতি দেয় আপডেট হয়। স্বতন্ত্র শাখাগুলির সমস্যাটি হ'ল আমাদের কাছে 1 টি কেন্দ্রীভূত ডাটাবেস রয়েছে যা প্রত্যেকটি ব্যবহার করে (বড় পরিবর্তনের জন্য আমরা পৃথক ডাটাবেসগুলি শাখা করি)।

1
আপনি মুক্তির জন্য একটি শাখা তৈরি করতে পারেন, এবং কেবলমাত্র মুক্তির সাথে সম্পর্কিত এটিতে প্রতিশ্রুতিবদ্ধ। অন্যান্য সমস্ত পরিবর্তনগুলি ট্রাঙ্কে করা উচিত। এটি অর্জনের জন্য আপনার দুটি বিকাশ ডাটাবেসের প্রয়োজন হবে। এই একটা সমস্যা হতে চান?

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

উত্তর:


5

মাইগ্রেশন

একটি আপ এবং ডাউন, যা আপনার রেপোতে রয়েছে এবং আপনার অ্যাপ্লিকেশন সহ ট্যাগযুক্ত ged

আপনি এমনকি স্কাইএল ফ্ল্যাটফাইলে DIY করতে পারেন যা আপনার স্কিমা সংশোধন করে এবং স্কিমা সংস্করণ আপডেট করে। আপনাকে যা করতে হবে তা হ'ল:

  • আপনার স্থানান্তরগুলি উত্স কোডের পাশে রাখুন, সেগুলি সংস্করণ করে এক সাথে ট্যাগ করা উচিত
  • সর্বদা সমস্ত পরিবেশে পরিচালিত পরিবর্তনগুলি (মাইগ্রেশন) ব্যবহার করুন
  • কোনও পরিবেশে অ্যাডহক পরিবর্তনগুলি কখনই মঞ্জুর করবেন না

ঠিক আছে আপনি দেবের বিকাশে পরিবর্তনগুলি করতে পারেন, তবে একবার পরিবর্তনটি ক্যাপচার করার পরে আপনাকে সর্বদা আপনার ডিবি উড়িয়ে দেওয়া উচিত এবং মাইগ্রেশন দিয়ে এটি পুনর্নির্মাণ করা উচিত।


স্ক্রিপ্টগুলিতে কোনও বাগ পাওয়া গেলে কী হবে? আপনি কি স্কয়ার স্ক্রিপ্টে ফিরে যান এবং এটি আপডেট করেন?
জাজদা

1
না, আপনি একটি নতুন স্থানান্তর তৈরি করেন (যা স্কিমা সংস্করণকে বাড়িয়ে তোলে)। এইভাবে আপনি কীভাবে ফিক্সটি স্থাপন করা হয়েছে তা ডাটাবেসের স্কিমা সংস্করণ দেখে।
ডায়েটবুদ্ধ

আপনার সাহায্যের জন্য ধন্যবাদ। প্রথম নজরে এটি একটি খুব দৃ approach় পদ্ধতির এবং আমাদের শাখা কৌশল হিসাবে অনুরূপ বলে মনে হয়।
জাজদা

2

উৎস নিয়ন্ত্রণ!

আপনি আপনার বাইনারিগুলি এসএনএন / গিট / পি 4 এর মাধ্যমে না গিয়ে সরাসরি উত্পাদনে স্থাপন করবেন না, তবে কেন আপনার ডাটাবেসগুলি একা এটি করবে? বিকাশকারীদের তাদের স্থানীয় পরিবর্তনগুলি পরীক্ষা করার জন্য ব্যক্তিগত দৃষ্টান্ত পান তবে এটি যখন ডেভলপমেন্ট ডিবিতে যেতে হয়, তখন ডিডিএল ফাইলগুলিতে চেক করে যেতে হয়। এমনকি আপনি এই ডিডিএল পরিবর্তনগুলি স্বয়ংক্রিয়ভাবে প্রয়োগ করতে সরঞ্জামগুলি লিখে রাখতে পারেন (এটি সঠিকভাবে করার কোনও বিদ্যমান উপায় সম্পর্কে আমি জানি না)।

একবার আপনার জায়গায় ডিবি স্কিমা পরিবর্তনের চারপাশে বিধিনিষেধ তৈরি হয়ে গেলে (আর কোনও স্ক্যালপ্লাস -> ইস্যু ডিডিএল হয় না) এবং কঠোর অ্যাকাউন্ট নিয়ন্ত্রণ (প্রত্যেকের কাছে ডিডিএল অ্যাক্সেস নেই) হয়ে গেলে, এটি আরও ব্যবস্থাপনামূলক হয়ে উঠতে হবে।


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

আপনার বিকাশ ডিবি কেন উত্পাদন ডিবি হিসাবে একই আকার হতে হবে? তাদের একই স্কিমা থাকতে পারে এবং আপনার এমনকি সমস্ত ডেটা সহ একটি বিশেষ লোড টেস্টিং বহর থাকতে পারে, তবে স্থানীয় ডেভ ডাটাবেসগুলি ছোট হতে পারে। এটি ডেটা ফাঁস সংক্রান্ত উদ্বেগ ইত্যাদিকেও প্রতিরোধ করে theory তত্ত্ব অনুসারে, প্রোড ডেটা একেবারে বিকাশকে আঘাত করা উচিত নয়।
সুব শঙ্করা সুব্রমনিয়ান

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

পুরো ডিবিটিকে পুনরায় তৈরি করার দরকার নেই। ওরাকলে প্রতিটি ব্যবহারকারীর নিজস্ব স্কিমা থাকে এবং আমাদের কাছে একটি অ্যাপ্লিকেশন স্কিমা রয়েছে। অ্যাপ্লিকেশন স্কিমাতে সমস্ত বস্তুর জন্য সর্বজনীন প্রতিশব্দ তৈরি করুন। তারপরে প্রতিটি ব্যবহারকারী তাদের নিজস্ব স্কিমে বস্তু (টেবিল, এসপি) পরিবর্তন করতে পারে এবং যদি তারা নিজেরাই সংযুক্ত হয় তবে তাদের বস্তুর নাম ব্যবহার করা হবে। স্কিমার মধ্যে নেই এমন বস্তুর জন্য প্রতিশব্দ Woukd ব্যবহার করা হবে। আমরা এভাবেই কাজ করি।
সফটভেদ

0

মাইগ্রেশন ব্যবহারের পরামর্শ অনুসরণ করে ... সম্ভবত একটি ও / আরএম ব্যবহার করুন যা রেল এবং সত্ত্বা ফ্রেমওয়ার্কে রুবির মতো মাইগ্রেশনগুলিকে সমর্থন করে 4..৩ উভয় পদ্ধতির ক্ষেত্রেই সমস্যাটি হ'ল মাইগ্রেশন সবই বা কিছুই নয়। পরিবর্তন সেটগুলির ক্ষেত্রে আপনি যা করতে পারেন তেমন কোনও অভিবাসন প্রয়োগ করা হয় (সাধারণত) তা নির্বাচন করতে পারবেন না।

আর একটি কার্যক্ষম বিকল্প (আপনি যদি মাইক্রোসফ্ট স্ট্যাকের উপরে থাকেন তবে আপনি কখনও প্ল্যাটফর্মের কথা উল্লেখ করেননি) হ'ল ভিজুয়াল স্টুডিও ডাটাবেস সরঞ্জামগুলির সাহায্যে আপনার এসকিউএল পরিচালনা করা। এটি রিফ্যাক্টরিং (পুনরায় নামকরণ / কলামগুলি মুছে ফেলা ইত্যাদি) তৈরি করেছে এবং মডেলের যাচাইকরণ করে। উদাহরণস্বরূপ, একটি সঞ্চিত প্রোক একটি কলামের উল্লেখ করে যা আর নেই that's এটি আপনাকে জানাবে inform

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