কীভাবে একটি গ্রুপ ট্র্যাক ডাটাবেস স্কিমা পরিবর্তন হতে পারে?


67

কোন সংস্করণ নিয়ন্ত্রণ পদ্ধতিগুলি দলগুলির ডেটাবেস স্কিমা পরিবর্তনগুলি ট্র্যাক করতে সহায়তা করে?


আপনি এখানে কি অর্জন করার চেষ্টা করছেন? আপনি কি পরিবর্তন করতে মানুষকে সতর্ক করার চেষ্টা করছেন বা কে এবং কখন পরিবর্তিত হয়েছে তার নিরীক্ষণের ট্রেইল তৈরি করার চেষ্টা করছেন? পুরোপুরি আর কিছু?
স্কটচের

@ স্কট - অপরিহার্যভাবে অন্যান্য দেবদের জন্য প্রায় অডিট ট্রেইলের মতো তৈরি করতে সক্ষম হবেন - তাই আমরা জানি যে আমাদের কাছে সর্বাধিক টু ডেট ডেভ স্কিমা রয়েছে এবং সেই টেস্ট এবং লাইভ সাইটগুলি কী স্কিমা চলছে তা দেখতে সহজেই পরীক্ষা করা যায়।
টবি

1
আমি সবেমাত্র পোস্ট করা প্রশ্নের সাথে এটি একই, তবে আমি মনে করি তারা উভয়েরই উত্তর দিতে যথেষ্ট আলাদা are db.stackexchange.com/Qestions/64/…
বেথ হোয়াইটেল

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

1
লিকুইবেস বা ফ্লাইওয়ে দেখুন
a_horse_with_no_name

উত্তর:


44

কয়েক মিনিট আগে আমি এটি পরীক্ষা করে দেখছিলাম: একটি টেবিল যা একটি ডেটাবেসযুক্ত সমস্ত প্রকল্পে থাকা উচিত , এটি ব্যবহারের পক্ষে যথেষ্ট সহজ বলে মনে হয়, এটি পরীক্ষা করে দেখুন:

একে স্কিমা_ভার্সন (বা মাইগ্রেশন, বা যা কিছু আপনার উপযুক্ত করে) বলা হয় এবং এর উদ্দেশ্য ডাটাবেসে কাঠামোগত বা ডেটা পরিবর্তনের উপর নজর রাখা। একটি সম্ভাব্য কাঠামো (মাইএসকিউএল-তে উদাহরণ):

create table schema_version (
     `when` timestamp not null default CURRENT_TIMESTAMP,
     `key` varchar(256) not null,
     `extra` varchar(256),
     primary key (`key`)
) ENGINE=InnoDB;

স্কিমা_ভার্সন ( key, extra) মানগুলিতে সন্নিবেশ করুন ('001', 'স্কিমা সংস্করণ');

আপনি প্রকল্পের শুরু থেকে এই টেবিলটি যুক্ত করুন বা আপনি প্রথম সংস্করণটিকে কোনও মঞ্চ বা প্রোডাকশন সার্ভারে স্থাপন করার ঠিক পরে আপনার উপর নির্ভর করবে।

যখনই আপনাকে ডাটাবেস কাঠামো পরিবর্তন করতে বা কোনও ডেটা মাইগ্রেশন সম্পাদনের জন্য কোনও এসকিউএল স্ক্রিপ্ট কার্যকর করতে হবে আপনার সেই টেবিলেও একটি সারি যুক্ত করা উচিত। এবং সেই স্ক্রিপ্টের সূচনা বা শেষের দিকে সন্নিবেশ বিবৃতিটির মাধ্যমে এটি করুন (যা প্রকল্পের কোড সংগ্রহস্থলের প্রতিশ্রুতিবদ্ধ)।

...


1
@ ডেভিড - এটি নিজের নিজস্ব প্রায় একটি প্রশ্ন, কিন্তু আপনি কীভাবে টেবিলটি আপনার ভিসিএসের প্রতিক্রিয়া জানাতে পারেন তা খুব তাড়াতাড়ি ব্যাখ্যা করতে পারবেন? শুধু একটি ম্যানুয়াল ডাম্প সঙ্গে?
টবি 21

@ টবি - একটি মোতায়েনের সাথে সাথে স্ক্রিপ্টগুলি এসভিএনে স্থাপন করা হয়েছিল এবং বিকাশকারী এসভিএন রেভ বা জিরার বাগ প্রদান করেছিলেন - আমরা (ডিবিএস) তাদের দ্রুত নোটগুলি revোকিয়েছি এবং এই টেবিলটিতে পুনরায় # সংশোধন করেছি। এটি একসাথে বেঁধে রাখতে, যদিও আমরা এই টেবিলের দিকে JIRA তে হাইপারলিংকটি দেখানোর জন্য একটি ওয়েব পৃষ্ঠা তৈরি করেছি।
ডেভিড হল

হ্যাঁ. মূলত ওপিটির পেছনের দিকে রয়েছে - আপনি ডিপ্লোয়মেন্ট স্ক্রিপ্টগুলি ব্যবহার করেন যা আপনি সংস্করণ করেন, আপনি ডাটাবেস ডেল্টাস থেকে কাজ করেন না। যারা কেবলমাত্র ডিজেনারেট (সরলীকৃত) ক্ষেত্রে কাজ করে - আপনার স্কিমার আপডেট করতে মাল্টি স্টেপ ট্রান্সফর্মগুলি করতে হতে পারে, যা কোনও সরঞ্জাম পিছনে উত্পন্ন করতে পারে না। কিন্তু স্থাপনার স্ক্রিপ্টগুলি এটি পরিচালনা করতে পারে।
টমটম

23

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

যে ব্যর্থ, RedGate হয়েছে SSMS মধ্যে উৎস নিয়ন্ত্রণ সংহত করার একটি হাতিয়ার এবং এসকিউএল তুলনা তুলনা / মাইক্রোসফট SQL সার্ভার স্কিমের সিঙ্ক্রোনাইজ জন্য দরকারী। ভিজ্যুয়াল স্টুডিও ডেটাবেস সংস্করণে একটি অন্তর্নির্মিত স্কিমা তুলনা সরঞ্জামও রয়েছে

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


ভিজ্যুয়াল স্টুডিওর "ডাটাবেস সংস্করণ" আলাদা পণ্য হিসাবে ব্যবহৃত হত তবে এখন টিম সার্ভার সহ সংস্করণগুলিতে অন্তর্ভুক্ত। ব্যক্তিগতভাবে আমি রেডগেট সরঞ্জামকে (এসকিউএল তুলনা) সিঙ্কে রাখার জন্য পছন্দ করি।
টাঙ্গুরেনা

12

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


8

এই প্রশ্নে যোগাযোগের জন্য বেশ কয়েকটি পৃথক কোণ রয়েছে বলে আমি মনে করি। আমার বিশ্বাস, "সরঞ্জাম-প্রথম" কোণটি প্ল্যাটফর্ম এবং ব্যক্তিগত পছন্দের ভিত্তিতে পরিবর্তিত হতে চলেছে। দৃষ্টিতে কেস: আমি এমএস ভিজ্যুয়াল স্টুডিওতে একটি ডাটাবেস প্রকল্প ব্যবহার করছি তবে আমি নিশ্চিত নই যে এটি মাইএসকিউএল-এর জন্য একটি দুর্দান্ত সমাধান is আমি এমন লোকদেরও জানি যারা রেডগেট, এরউইন, এমবারকাডেরো ইত্যাদি থেকে পছন্দসই সরঞ্জামগুলিতে বেশ বিক্রি হয় know

এই প্রশ্নের একটি "প্রক্রিয়া-প্রথম" কোণও রয়েছে, যা পরবর্তী প্রশ্নগুলিতে এই সাইটে পুনরায় দেখা হবে (আশা করা যায়)। এই প্রক্রিয়াটির মূল স্টোনগুলি আপনার স্কিমা উত্স নিয়ন্ত্রণের অধীনে পাচ্ছে এবং এমন পরিবর্তনগুলি পরিচালনা করছে যে আপনি চাহিদা অনুযায়ী "এক্স" সংস্করণ "y" থেকে স্কিমার পরিবর্তনগুলি প্রয়োগ করতে পারেন।

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

অবশেষে, এটি সম্ভবত স্ট্যাকওভারফ্লো থেকে "উত্তরাধিকার উত্তর" এর সাথে সংযোগ স্থাপনের উপযুক্ত ।


5

স্কিমাক্রোলার হ'ল সমস্ত ডাটাবেস স্কিমা অবজেক্ট সহ একটি পাঠ্য ফাইল তৈরি করার জন্য আমার সরঞ্জাম। আমি এই পাঠ্য আউটপুটটিকে উভয়ই মানব-পঠনযোগ্য, পাশাপাশি অন্য সার্ভারের অনুরূপ আউটপুটটির বিপরীতে পৃথক-সক্ষম করতে ডিজাইন করেছি।

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


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