ডাটাবেস গঠন পরিবর্তন জন্য একটি সংস্করণ নিয়ন্ত্রণ সিস্টেম আছে?

আমি প্রায়ই নিম্নলিখিত সমস্যার মধ্যে সঞ্চালিত।

আমি এমন একটি প্রকল্পে কিছু পরিবর্তন করি যা ডাটাবেসে নতুন টেবিল বা কলাম প্রয়োজন। আমি ডাটাবেস পরিবর্তন এবং আমার কাজ চালিয়ে। সাধারণত, আমি পরিবর্তনগুলি লিখতে মনে রাখি যাতে তারা লাইভ সিস্টেমে প্রতিলিপি করা যায়। যাইহোক, আমি সবসময় মনে করি না যে আমি কি পরিবর্তন করেছি এবং আমি সবসময় এটি লিখতে মনে রাখবেন না।

তাই, আমি লাইভ সিস্টেমে একটি ধাক্কা তৈরি করি এবং একটি বড়, সুস্পষ্ট ত্রুটি পেতে পারি যে NewColumnX নেই।

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

0
যোগ সম্পাদিত
মতামত: 1
আমাদের বিষয়বস্তুর নির্দেশিকা অনুযায়ী, " কিছু প্রশ্ন এখনও বন্ধ-বিষয়, এমনকি যদি তারা একের মধ্যে ফিট হয় ... প্রশ্ন জিজ্ঞাসা করার জন্য জিজ্ঞাসা বা একটি বই, সরঞ্জাম, সফ্টওয়্যার লাইব্রেরি, টিউটোরিয়াল বা অন্যান্য বন্ধ সাইট রিসোর্স খুঁজে জিজ্ঞাসা অফ-বিষয় ... "
যোগ লেখক Robert Columbia, উৎস

19 উত্তর

রুবিগুলিতে রুবিতে, একটি মাইগ্রেশন - এর একটি ধারণা আছে যা দ্রুত পরিবর্তন করতে একটি দ্রুত স্ক্রিপ্ট ডাটাবেস।

আপনি একটি মাইগ্রেশন ফাইল তৈরি করুন, যার মধ্যে DB সংস্করণ (যেমন কলাম যোগ করা) বৃদ্ধি করার নিয়ম রয়েছে এবং সংস্করণটি ডাউনগ্রেড করার নিয়ম (যেমন কলামটি সরিয়ে ফেলা)। প্রতিটি মাইগ্রেশন সংখ্যাযুক্ত, এবং একটি টেবিলের আপনার বর্তমান db সংস্করণ ট্র্যাক রাখে।

মাইগ্রেট করা , আপনি "db: migrate" নামে একটি কমান্ড চালান যা আপনার সংস্করণটি দেখায় এবং প্রয়োজনীয় স্ক্রিপ্টগুলি প্রয়োগ করে। আপনি একই ভাবে মাইগ্রেট করতে পারেন।

মাইগ্রেশন স্ক্রিপ্টগুলি একটি সংস্করণ কন্ট্রোল সিস্টেমে রাখা হয় - যখনই আপনি নতুন স্ক্রিপ্টটি পরীক্ষা করে ডাটাবেস পরিবর্তন করেন, এবং কোনও ডেভেলপার তাদের স্থানীয় ডিবিকে সর্বশেষ সংস্করণে আনার জন্য এটি প্রয়োগ করতে পারেন।

0
যোগ
এই রুবি প্রকল্পের জন্য পছন্দ জাভাতে এই নকশার নিকটতম সমতুল্য মাইবাতিস স্কিমা মাইগ্রেশন। নোটের জন্য সমতুল্য code.google.com/p/migratordotnet । তারা এই কাজ IMO জন্য সব চমৎকার সরঞ্জাম।
যোগ লেখক Dan Tanner, উৎস

রেডগেটের একটি পণ্য আছে যা SQL উত্স নিয়ন্ত্রণ নামে পরিচিত। এটি টিএফএস, এসভিএন, সোর্সজায়ার ভল্ট, ভল্ট প্রো, মার্কেসিয়াল, পারফ্লস এবং জিইটি-এর সাথে সমন্বিত করে।

0
যোগ

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

0
যোগ

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

0
যোগ
হ্যাঁ, কিন্তু পৃথক SQL ফাইলগুলি আপনাকে আপনার ডেভ / প্রোড db আপগ্রেড করার জন্য একটি পুনর্বিবেচনা থেকে অপর্যাপ্ত স্ক্রিপ্ট দেবে না
যোগ লেখক Asaf Mesika, উৎস

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

0
যোগ

ওরাকল প্যাকেজ DBMS_METADATA- এ নজর দিন।

বিশেষ করে, নিম্নোক্ত পদ্ধতিগুলি বিশেষভাবে উপযোগী:

    <�লি> <�কোড> DBMS_METADATA.GET_DDL </কোড> আপনি <�লি> <�কোড> DBMS_METADATA.SET_TRANSFORM_PARAM </কোড> আপনি <�লি> <�কোড> DBMS_METADATA.GET_GRANTED_DDL </কোড> আপনি

একবার আপনি কীভাবে কাজ করেন (বেশ স্বতন্ত্র ব্যাখ্যা) আপনি সেই পদ্ধতিগুলির ফলাফলগুলিকে পাঠ্য ফাইলগুলির মধ্যে ডাম্প করতে একটি সহজ স্ক্রিপ্ট লিখতে পারেন যা সোর্স কন্ট্রোলের অধীনে করা যেতে পারে। সৌভাগ্য!

MSSQL এর জন্য এই সহজ কিছু আছে কিনা নিশ্চিত না

0
যোগ

আমি অত্যন্ত এসকিউএল ডেল্টা এর সুপারিশ করছি। আমি আমার বৈশিষ্ট্য কোডিং সম্পন্ন করা হয় যখন আমি diff স্ক্রিপ্ট উৎপন্ন করার জন্য এটি ব্যবহার করে এবং যারা লিপি আমার সোর্স কন্ট্রোল সরঞ্জাম (Mercurial :)) মধ্যে পরীক্ষা

They have both an SQL server & Oracle version.

0
যোগ

পিএইচসিএলকিউএল ডেভেলপার, অল আর্রেড অটোমেশনস এর একটি টুল, ভিজুয়াল সোর্স সেফের সাথে ঠিক আছে (কিন্তু মহান না) রিপোসিটোরিসের জন্য একটি প্লাগিন রয়েছে।

From the web:

The Version Control Plug-In provides a tight integration between the PL/SQL Developer IDE >>and any Version Control System that supports the Microsoft SCC Interface Specification. >>This includes most popular Version Control Systems such as Microsoft Visual SourceSafe, >>Merant PVCS and MKS Source Integrity.

http://www.allroundautomations.com/plsvcs.html

0
যোগ

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

 
   

তাই আপনি আপনার নিজের এই পরিচালনা করতে হবে না

বিশুদ্ধ এসকিএল বিবৃতি বা ডাটা আমদানি এছাড়াও সমর্থিত।

0
যোগ
জাভা জন্য আমি এই দিন flywaydb.org - এ নজরদারি করার সুপারিশ করছি - এই সাইটটির বৈশিষ্ট্যটিও দেখুন
যোগ লেখক Karussell, উৎস
আমরা liquibase ব্যবহার, কিন্তু আমরা বিভিন্ন তথ্য জন্য 3 বিভিন্ন পদ্ধতি ব্যবহার: 1. গঠন (টেবিল, ভিউ, ...): ঐতিহাসিক চ্যানেল পরিবর্তন 2. কোড (প্রক্রিয়া, পিএল / এসকিউএল, ফাংশন): শুধুমাত্র একটি পরিবর্তন runalways = সত্য রাননchange = সত্য 3. কোড টেবিল, টেবিলে সংরক্ষিত অন্যান্য মেটা "স্থির": কোডগুলির জন্য একই পদ্ধতি, শুধুমাত্র এক পরিবর্তন, মুছে ফেলুন, সমস্ত তথ্য সন্নিবেশ করান
যোগ লেখক Palesz, উৎস

সংস্করণ কন্ট্রোলারের টেবিল স্টেটমেন্টে আপনার প্রাথমিক তৈরি করুন, তারপর আলোর সারণি বিবৃতিগুলি যুক্ত করুন, কিন্তু ফাইলগুলি সম্পাদনা করুন না, শুধুমাত্র ক্রমানুসারে ক্রমানুসারে নাম, অথবা এমনকি "পরিবর্তন সেট" হিসাবে ফাইলগুলি পরিবর্তন করুন, যাতে আপনি একটি নির্দিষ্ট স্থাপনার জন্য সমস্ত পরিবর্তনগুলি খুঁজে পেতে পারেন।

আমি দেখতে পাচ্ছি যে কঠিনতম অংশ, নির্ভরতা পর্যবেক্ষণ করছে, যেমন, একটি নির্দিষ্ট স্থাপনার টেবিলের জন্য B এর টেবিলের আগে আপডেট করা প্রয়োজন হতে পারে।

0
যোগ

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

http://www.red-gate.com/Products/schema_compare_for_oracle/index পেজটি

0
যোগ

আমি একটি পুরোনো স্কুল, আমি ডাটাবেস তৈরি করার জন্য উৎস ফাইল ব্যবহার করি। প্রকৃতপক্ষে ২ টি ফাইল রয়েছে - প্রকল্প-ডাটাবেস.sql এবং project-updates.sql - প্রথম স্কিমা এবং স্থায়ী ডেটা এবং পরিবর্তনগুলির জন্য দ্বিতীয়। অবশ্যই, উভয় উৎস নিয়ন্ত্রণ অধীনে হয়।

যখন ডাটাবেস পরিবর্তন হয়, আমি প্রথমে প্রকল্প-ডাটাবেস.sql- এ প্রধান স্কিমটি আপডেট করি, তারপর প্রাসঙ্গিক তথ্যটি project-updates.sql তে কপি করে উদাহরণস্বরূপ, ALTER TABLE বিবৃতি। আমি ডেভেলপমেন্ট ডেটাবেস আপডেট করতে পারব, পরীক্ষায় উত্তীর্ণ হতে পারব না। তারপর, ফাইলগুলি পরীক্ষা করুন, আবার পরীক্ষা করুন, এবং উত্পাদন প্রয়োগ করুন।

এছাড়াও, আমি সাধারণত db- টেবিল মধ্যে একটি টেবিল আছে - যেমন - যেমন:

এ এসকিউএল

CREATE TABLE Config
(
    cfg_tag VARCHAR(50),
    cfg_value VARCHAR(100)
);

INSERT INTO Config(cfg_tag, cfg_value) VALUES
( 'db_version', '$Revision: $'),
( 'db_revision', '$Revision: $');

তারপর, আমি আপডেট বিভাগে নিম্নলিখিত যোগ করুন:

UPDATE Config SET cfg_value='$Revision: $' WHERE cfg_tag='db_revision';

ডাটাবেস তৈরির সময় db_version পরিবর্তিত হয়ে যায়, এবং db_revision আমাকে একটি ইঙ্গিত দেয় যে ডিবি বেসলাইন থেকে কত দূরে।

I could keep the updates in their own separate files, but I chose to mash them all together and use cut&paste to extract relevant sections. A bit more housekeeping is in order, i.e., remove ':' from $Revision 1.1 $ to freeze them.

0
যোগ

দুটি বই প্রস্তাবনা: "রিফ্যাক্টরিং ডেটাবেস" এম্বলার এবং সাদালেজ এবং এম্বলেলের "এজিল ডেটাবেস টেকনিকস" দ্বারা।

কেউ কেউ রেল ম migrations উল্লিখিত। আমি মনে করি তারা মহান কাজ, এমনকি রেল অ্যাপ্লিকেশন বাইরে। আমি তাদের এসএসপি সার্ভারের সাথে একটি এএসপি অ্যাপ্লিকেশন ব্যবহার করেছিলাম যা আমরা রেললে যাওয়ার পথে ছিলাম। আপনি মাইগ্রেশন স্ক্রিপ্টগুলি VCS- এ নিজেরাই পরীক্ষা করে দেখুন। এই বিষয়ে প্রগাম্যাটিক ড্যাভ থমাসের একটি পোস্ট

0
যোগ

ER Studio allows you to reverse your database schema into the tool and you can then compare it to live databases.

উদাহরণ: ER স্টুডিওতে আপনার ডেভেলপমেন্ট স্কিমা বিপরীত - উৎপাদনটি এর সাথে তুলনা করুন এবং এটি সমস্ত পার্থক্যগুলির তালিকা করবে এটি পরিবর্তন স্ক্রিপ্ট বা শুধুমাত্র স্বয়ংক্রিয়ভাবে তাদের মাধ্যমে ধাক্কা পারেন

একবার আপনি ER স্টুডিও একটি স্কিমা আছে, আপনি তৈরি স্ক্রিপ্ট সংরক্ষণ বা একটি মালিকানাধীন বাইনারি হিসাবে এটি সংরক্ষণ করুন এবং সংস্করণ নিয়ন্ত্রণ এটি সংরক্ষণ করতে পারেন। আপনি যদি কখনও স্কিমের একটি অতীতের সংস্করণে ফিরে যেতে চান, তবে এটি চেক করুন এবং আপনার db প্ল্যাটফর্মে এটি ধাক্কা।

0
যোগ

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

0
যোগ

টেবিলের পরিবর্তনের জন্য VCS অনুপস্থিতিতে আমি তাদের উইকিতে লগ ইন করেছি। অন্তত তখন আমি দেখতে পাব যে এটি কখন এবং কেন এটি পরিবর্তিত হয়েছিল। এটা নিখুঁত থেকে দূরে হিসাবে না সবাই এটি করছেন এবং আমরা ব্যবহার একাধিক পণ্য সংস্করণ আছে, কিন্তু কিছুই ভালো।

0
যোগ

আপনি এসকিউএল সার্ভার ব্যবহার করছেন এটি ডেটা ডুড্ডকে হ্রাস করা কঠিন হবে (ভিসুয়াল স্টুডিও এর ডেটাবেজ সংস্করণ উচ্চারণ)। একবার আপনি এটি হ্যান্ডেল পেতে, ডাটাবেসের আপনার সোর্স নিয়ন্ত্রিত সংস্করণের মধ্যে তুলনা একটি স্কিমা করছেন এবং উত্পাদন সংস্করণ একটি বাতাস হয়। এবং একটি ক্লিকের মাধ্যমে আপনি আপনার ডিফার ডিডিএল তৈরি করতে পারেন।

MSDN এ একটি নির্দেশিকা ভিডিও এর খুব সহায়ক।

আমি DBMS_METADATA এবং টoad সম্পর্কে জানি, কিন্তু যদি কেউ Oracle জন্য একটি ডেড ডুড সঙ্গে আসতে পারে তারপর জীবন সত্যিই মিষ্টি হবে।

0
যোগ

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

এটা বলার অপেক্ষা রাখে না যে এটি একটি সংস্করণ 1.0 পণ্য, যদিও, এবং কয়েকটি বিষয় ছাড়া হয় না।

0
যোগ

MyBatis (formerly iBatis) has a schema migration, tool for use on the command line. It is written in java though can be used with any project.

একটি ভাল ডেটাবেস পরিবর্তন ব্যবস্থাপনা অনুশীলন অর্জন করতে, আমাদের কয়েকটি প্রধান লক্ষ্য চিহ্নিত করতে হবে।   এইভাবে, মাইব্যাটিস স্কিমা মাইগ্রেশন সিস্টেম (বা মাইব্যাটিস মাইগ্রেশন্স ফর দ্য টাইম) এর জন্য:

  • যে কোনো ডাটাবেস, নতুন বা বিদ্যমান
  • সাথে কাজ করুন
  • উত্স নিয়ন্ত্রণ ব্যবস্থাটি উপভোগ করুন (যেমন, সাবভারশন)
  • স্বাধীনভাবে কাজ করার জন্য একসঙ্গে ডেভেলপার বা দল সক্ষম করুন
  • দ্বন্দ্বগুলি খুব দৃশ্যমান এবং সহজে পরিচালনাযোগ্য করার অনুমতি দেয়
  • ফরোয়ার্ড এবং পশ্চাদপদ মাইগ্রেশন (ক্রমবর্ধমান, বিকাশ ঘটানো) জন্য অনুমতি দিন
  • সহজেই অ্যাক্সেসযোগ্য এবং বোধগম্য ডাটাবেসের বর্তমান অবস্থা তৈরি করুন
  • অ্যাক্সেসের অধিকার বা আমলাতন্ত্রের সত্ত্বেও migrations সক্ষম করুন
  • যেকোনো পদ্ধতির সাথে কাজ
  • ভাল, সামঞ্জস্যপূর্ণ অনুশীলনের জন্য উত্সাহিত
0
যোগ