সংস্করণ SQL সার্ভার ডাটাবেস

আমি সংস্করণ নিয়ন্ত্রণ অধীনে আমার ডাটাবেস পেতে চাই। আমাকে কি কোন পরামর্শ বা প্রস্তাবিত নিবন্ধ আছে আমার শুরু?

আমি সর্বদা সেখানে কিছু ডেটা রাখতে চাই (যেমন আঠা উল্লেখ করা হয়েছে: ব্যবহারকারী প্রকার এবং প্রশাসক)। আমিও কর্মক্ষমতা পরিমাপের জন্য উত্পন্ন পরীক্ষা ডেটা একটি বড় সংগ্রহ চাইবে।

0
যোগ সম্পাদিত
মতামত: 1
এই অনুরূপ প্রশ্ন তাকান।
যোগ লেখক stukelly, উৎস
@ আসি_32 বিট সাধারণ স্ট্যাকওভারফ্লো / স্ট্যাক এক্সচেঞ্জ লজিক। আমি এই ওয়েবসাইট সম্পর্কে পছন্দ করি না; নীরব কারণগুলির জন্য অনেক ভাল জিনিস বন্ধ হয়ে যায় আমি এই কারণে সম্ভবত কম প্রশ্ন পোস্ট করা। আমার কাছে নিরাপত্তা স্ট্যাক এক্সচেঞ্জের কাছাকাছি-মডারেটরের অনুমতি রয়েছে এবং নিকটবর্তী ভোটগুলি পেতে অর্ধেক থ্রেডগুলি খোলা / পুনরায় খুলতে ভোট দিন।
যোগ লেখক Luc, উৎস
154 upvotes এবং 146 favs এবং বন্ধ? কিভাবে সম্ভব?
যোগ লেখক ashy_32bit, উৎস
[সংস্করণ ডাটাবেস - শাখা এবং মার্জ] নতুন লিঙ্ক: odetocode.com/blogs/scott/archive/2008/02/03/…
যোগ লেখক Fil, উৎস
এছাড়াও এই সাদা কাগজে একটি চেহারা আছে; ডাটাবেস সংস্করণ নিয়ন্ত্রণের জন্য সুনির্দিষ্ট গাইড www3.dbmaestro.com/&hellip ;
যোগ লেখক DBAstep, উৎস

28 উত্তর

আমরা আমাদের এসকিউএল ডাটাবেস পরিচালনা করতে DBGhost ব্যবহার করি। তারপর আপনি আপনার সংস্করণ নিয়ন্ত্রণ একটি নতুন ডাটাবেস নির্মাণ করতে আপনার স্ক্রিপ্ট করা, এবং এটি একটি নতুন ডাটাবেস নির্মাণ করা হবে, বা সংস্করণ নিয়ন্ত্রণ স্কিম মধ্যে কোনো বিদ্যমান ডাটাবেস আপগ্রেড করব। যেভাবে আপনি পরিবর্তন স্ক্রিপ্টগুলি তৈরি করার বিষয়ে চিন্তা করতে হবে না (যদিও আপনি এখনও এটি করতে পারেন, উদাহরণস্বরূপ, যদি আপনি একটি কলামের ডাটা টাইপ পরিবর্তন করতে চান এবং ডেটা রূপান্তর করতে চান)।

0
যোগ
আমি DbGhost 10 বছর ধরে ব্যবহার করেছি এবং এটি আমাকে কখনও নিচে না তারা প্রদান সমর্থন কেউ দ্বিতীয়
যোগ লেখক penderi, উৎস

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

0
যোগ

আপনি একটি মাইগ্রেশন সমাধান এও দেখতে পারে। এটি আপনাকে আপনার ডাটাবেস স্কিমকে C# কোডে নির্দিষ্ট করার অনুমতি দেয় এবং MSBuild ব্যবহার করে আপনার ডেটাবেস সংস্করণটি আপ ও ডাউন করে দেয়।

আমি বর্তমানে DbUp ব্যবহার করছি, এবং এটি ভাল কাজ করছে

0
যোগ

মার্টিন ফাউলার আমার প্রিয় নিবন্ধটি লিখেছেন, http://martinfowler.com/articles/evodb.html একটি>। আমি আলম হিসাবে সংস্করণ নিয়ন্ত্রণের অধীনে স্কিমা ডাম্প করা পছন্দ করি না এবং অন্যেরা পরামর্শ দেয় কারণ আমি আমার উৎপাদন ডাটাবেস আপগ্রেড করার জন্য একটি সহজ উপায় চাই।

একটি ওয়েব অ্যাপ্লিকেশন যেখানে আমি একটি একক উত্পাদন ডাটাবেস উদাহরণ থাকবে, আমি দুটি কৌশল ব্যবহার:

ডাটাবেস আপগ্রেড স্ক্রিপ্ট

A sequence ডাটাবেস আপগ্রেড স্ক্রিপ্ট that contain the DDL necessary to move the schema from version N to N+1. (These go in your version control system.) A _version_history_ table, something like

create table VersionHistory (
    Version int primary key,
    UpgradeStart datetime not null,
    UpgradeEnd datetime
    );

একটি নতুন এন্ট্রি প্রতিবার একটি আপগ্রেড স্ক্রিপ্ট রান যা নতুন সংস্করণ অনুরূপ রান পায়।

This ensures that it's easy to see what version of the database schema exists and that ডাটাবেস আপগ্রেড স্ক্রিপ্ট are run only once. Again, these are not database dumps. Rather, each script represents the changes necessary to move from one version to the next. They're the script that you apply to your production database to "upgrade" it.

বিকাশকারী স্যান্ডবক্স সিঙ্ক্রোনাইজেশন

  1. একটি স্ক্রিপ্ট ব্যাকআপ, স্যানিটাইজ, এবং একটি উত্পাদন ডাটাবেস সঙ্কুচিত। প্রতিটি আপগ্রেডের পর উৎপাদন ডিবিতে এটি চালান।
  2. একটি স্ক্রিপ্ট পুনঃস্থাপন (এবং জোর যদি প্রয়োজন হয়) একটি বিকাশকারী এর ওয়ার্কস্টেশন ব্যাকআপ। প্রতিটি ডেভেলপার প্রতিটি আপগ্রেডের উৎপাদন ডিবিতে এই স্ক্রিপ্টটি রান করে।

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

0
যোগ
কি সত্যিই হতাশাজনক যে একটি ভিএস ডাটাবেস প্রকল্প এই স্কিম আপডেটের জন্য প্রয়োজন স্ক্রিপ্ট তৈরি করতে পারে, কিন্তু এটি তাদের সরাসরি প্রয়োগ করা হবে। এটি সংস্করণ ইতিহাস স্টাফ হ্যান্ডেল করবে না। আপনি নিজেই এটি করতে হবে, এবং আপনি এমনকি একবার ম্যানুয়াল আপডেট স্ক্রিপ্ট যোগ করতে ভুলবেন না কারণ আপনার ডিবি ইতিমধ্যে আপডেট করা হবে এবং ডিবি প্রোজেক্ট আবার একই একই আপডেট স্ক্রিপ্ট তৈরি করবে না আমি ইচ্ছুক একটি প্রকল্প টাইপ যে পরিচালনা সংস্করণ ডাটাবেস ব্যবস্থাপনা।
যোগ লেখক Jez, উৎস
@ nikc.org এর উত্তর, অটোমেশনের জন্য পোস্ট-কমিট হুক
যোগ লেখক Silviu-Marian, উৎস
আমি একটি সম্পূর্ণ তৈরি এবং ড্রপ লিপি বজায় রাখার একটি অভ্যাস আছে, এবং ডেটা স্ক্রিপ্ট বিদ্যমান DB বর্তমান আপডেট আপ টু ডেট। উভয় সংস্করণ নিয়ন্ত্রণ যান। ডেল্টা স্ক্রিপ্টগুলির সংশোধন সংখ্যার অনুযায়ী নামকরণ করা হয়। এটি একটি আপডেট স্ক্রিপ্ট সঙ্গে db প্যাচিং স্বয়ংক্রিয় এটি সহজ।
যোগ লেখক nikc.org, উৎস
আপনি বলছেন যে আপনি উত্স নিয়ন্ত্রণ মধ্যে আপগ্রেড স্ক্রিপ্ট করা, বাদাম রোলব্যাক বেশী না সেখানে?
যোগ লেখক A-K, উৎস
সম্পূর্ণ স্কিম স্ক্রিপ্ট নিয়ন্ত্রণ সংস্করণ রেফারেন্স উদ্দেশ্যে খুব দরকারী। উদাহরণস্বরূপ, ALTERTERDATE PROCEDURE বিবৃতিটি দেখতে একটি সংরক্ষিত পদ্ধতিতে ঠিক কি পরিবর্তন করা হয়েছে তা দেখতে অসম্ভব।
যোগ লেখক Constantin, উৎস
নতুন আপগ্রেড স্ক্রিপ্ট চালানোর পরে সম্পূর্ণ ডিবি স্কিমা ডাম্পিং (এবং সংস্করণ) হল আপনার তৈরি / স্থাপনার প্রক্রিয়া হিসাবে অন্যান্য সরঞ্জামগুলিতে তথ্য উপলব্ধ করার জন্য এটি একটি ভাল উপায়। এছাড়াও, একটি স্ক্রিপ্টে সম্পূর্ণ স্কিমা থাকার অর্থ হচ্ছে সমস্ত মাইগ্রেশনের পদক্ষেপগুলি ছাড়াই একটি নতুন ডেটাবেস "স্পিন আপ" করা। এটি সংকলিত পূর্ববর্তী সংস্করণের বিরুদ্ধে বর্তমান সংস্করণকে পৃথক করা সম্ভব করে।
যোগ লেখক mlibby, উৎস
আমি এটিও করি, কিন্তু আমি পুরো প্রজন্মের স্ক্রিপ্টের জায়গায় একটি সাধারণ ব্যাকআপ ফাইল রাখি। দ্রুততর এবং কম সমস্যা-প্রবণ, আমার অভিজ্ঞতা। এটি অবাধ সংস্করণগুলির মধ্যে পার্থক্য করার জন্য এটি সামান্য কঠিন করে তোলে, তবে এটি পুনরায় করা না হলে প্রায়ই তা আসে না, এবং আপডেট স্ক্রিপ্টগুলি পুরোপুরি অনুসন্ধানযোগ্য যাই হোক না কেন, যা যথেষ্ট হবে, যেহেতু সব পরিবর্তন তাদের মাধ্যমে চলে। এছাড়াও, ডি.বি. এর ভিতরে সংস্করণের সংখ্যাগুলির জন্য, আমি ডাটাবেস বস্তুর উপর একটি বর্ধিত সম্পত্তি রাখি। এই ভাবে এটি ডেটা অংশ পরিবর্তে স্কিমা অংশ।
যোগ লেখক Atario, উৎস

ইহা সহজ.

  1. যখন বেস প্রজেক্ট প্রস্তুত হয় তখন আপনাকে সম্পূর্ণ ডাটাবেস স্ক্রিপ্ট তৈরি করতে হবে। এই স্ক্রিপ্টটি SVN- এর জন্য অনুমোদিত। এটি প্রথম সংস্করণ।

  2. এর পরে সমস্ত ডেভেলপার পরিবর্তন স্ক্রিপ্ট তৈরি করে (ALTER ..., নতুন টেবিল, sprocs, ইত্যাদি)।

  3. যখন আপনি বর্তমান সংস্করণ প্রয়োজন তখন আপনাকে নতুন পরিবর্তন স্ক্রিপ্টগুলি চালানো উচিত।

  4. যখন অ্যাপটি প্রযোজনা করা হয় তখন আপনি 1 তে ফিরে যান (তবে এটি অবশ্যই ক্রমানুসারে সম্পন্ন হবে)।

নান্ট আপনাকে সেই পরিবর্তন স্ক্রিপ্টগুলি চালানোর জন্য সহায়তা করবে। :)

এবং মনে রাখ. শৃঙ্খলা আছে যখন সবকিছু জরিমানা কাজ করে। প্রতিটি সময় যখন ডাটাবেস পরিবর্তন করা হয় তখন কোডের সাথে সংশ্লিষ্ট ফাংশনগুলিও প্রশংসিত হয়।

0
যোগ
কয়েক বছর পর আমি বলি: ফ্লুইন্টমিগ্রেটার ব্যবহার করুন (অথবা আপনার প্ল্যাটফর্মের অনুরূপ টুল)।
যোগ লেখক dariol, উৎস

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

Now what I like to add is that I've seen two days ago a presentation on the MS campus about the new and upcoming VS DB edition. The presentation was focused specifically on this topic and I was blown out of the water. You should definitely check it out, the new facilities are focused on keeping schema definition in T-SQL scripts (CREATEs), a runtime delta engine to compare deployment schema with defined schema and doing the delta ALTERs and integration with source code integration, up to and including MSBUILD continuous integration for automated build drops. The drop will contain a new file type, the .dbschema files, that can be taken to the deployment site and a command line tool can do the actual 'deltas' and run the deployment. I have a blog entry on this topic with links to the VSDE downloads, you should check them out: http://rusanu.com/2009/05/15/version-control-and-your-database/

0
যোগ

আমরা একটি এক্স 64 প্ল্যাটফর্মে মাইগ্রেট করার পর আমাদের এসকিউএল ডাটাবেস সংস্করণের প্রয়োজন ছিল এবং আমাদের পুরানো সংস্করণটি মাইগ্রেশন দিয়ে ভেঙ্গেছিল। আমরা একটি C# অ্যাপ্লিকেশন লিখেছি যা SQLDMO ব্যবহার করে সমস্ত এসকিউএল বস্তুর একটি ফোল্ডারে ম্যাপ করতে পারে:

                Root
                    ServerName
                       DatabaseName
                          Schema Objects
                             Database Triggers*
                                .ddltrigger.sql
                             Functions
                                ..function.sql
                             Security
                                Roles
                                   Application Roles
                                      .approle.sql
                                   Database Roles
                                      .role.sql
                                Schemas*
                                   .schema.sql
                                Users
                                   .user.sql
                             Storage
                                Full Text Catalogs*
                                   .fulltext.sql
                             Stored Procedures
                                ..proc.sql
                             Synonyms*
                                .synonym.sql
                             Tables
                                ..table.sql
                                Constraints
                                   ...chkconst.sql
                                   ...defconst.sql
                                Indexes
                                   ...index.sql
                                Keys
                                   ...fkey.sql
                                   ...pkey.sql
                                   ...ukey.sql
                                Triggers
                                   ...trigger.sql
                             Types
                                User-defined Data Types
                                   ..uddt.sql
                                xml Schema Collections*
                                   ..xmlschema.sql
                             Views
                                ..view.sql
                                Indexes
                                   ...index.sql
                                Triggers
                                   ...trigger.sql

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

0
যোগ
ওহো, এটি সর্বজনীনভাবে উপলব্ধ করার জন্য মহান হবে।
যোগ লেখক Chris Charabaruk, উৎস

আমি কিছুক্ষণ আগে এই অ্যাপটি লিখেছিলাম, http://sqlschemasourcectrl.codeplex.com/ যা আপনার MSFT SQL স্ক্যান করবে ডিবি এর হিসাবে যতবার আপনি চান এবং স্বয়ংক্রিয়ভাবে SVN আপনার বস্তুর (টেবিল, ভিউ, procs, ফাংশন, sql সেটিংস) ডাম্প। একটি যাদুমন্ত্র মত কাজ করে. আমি এটি ব্যবহার করে Unfuddle (যা আমাকে চেকবিনে সতর্কতা পেতে দেয়)

0
যোগ

এখানে রেড গেট এ আমরা একটি টুল প্রস্তাব করি, SQL উত্স নিয়ন্ত্রণ , যা আপনার ডাটাবেসটি TFS বা SVN সংগ্রহস্থলের সাথে যুক্ত করতে SQL ব্যবহার করে প্রযুক্তি ব্যবহার করে। এই টুল SSMS মধ্যে সংহত এবং আপনি স্বাভাবিকভাবে হিসাবে কাজ করতে দেয়, এটি ছাড়া আপনি এখন বস্তুগুলি সঞ্চালন করতে দেয়

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

এসকিউএল সোর্স কন্ট্রোলের মধ্যে স্ট্যাটিক ডাটা টেবিলের উল্লেখ করা সম্ভব। এইগুলি INSERT বিবৃতি হিসাবে উৎস নিয়ন্ত্রণে সংরক্ষণ করা হয়।

যদি আপনি পরীক্ষা ডেটার বিষয়ে কথা বলেন, আমরা চাই যে আপনি একটি টুল দিয়ে পরীক্ষামূলক ডেটা তৈরি করুন বা পোস্ট-স্থাপনার স্ক্রিপ্ট দ্বারা সংজ্ঞায়িত করুন, অথবা আপনি কেবল ডিভ পরিবেশে একটি উৎপাদন ব্যাকআপ পুনরুদ্ধার করুন।

0
যোগ
এই উত্তর ডেনের উত্তরটি দুই বছর আগে পোস্ট করা একটি ডুপ্লিকেট।
যোগ লেখক Knickerless-Noggins, উৎস
আকর্ষণীয় পণ্য (বাজারে একটি ফাঁক বিট) কিন্তু হিসাবে deltas "তৈরি করুন ..." আমাকে ভয় পাচ্ছি। কিভাবে আপনি শাখা / মার্জ করা হয়?
যোগ লেখক annakata, উৎস
আমরা বস্তু সংজ্ঞাগুলি CREATE হিসাবে সংরক্ষণ করি, কিন্তু যদি আপনি 'সর্বশেষ' পান বা, উদাহরণস্বরূপ, সিঙ্ক তুলুন প্রোফেশনে সিঙ্ক স্ক্রিপ্ট তৈরি করতে, এইগুলি যথাযত কমান্ডগুলিতে পরিবর্তিত হয়, যেমন ALTER শাখা বা একত্রীকরণের জন্য, আপনি যেভাবে বর্তমানে আপনার সোর্স কন্ট্রোল সিস্টেম ব্যবহার করেন
যোগ লেখক David Atkinson, উৎস
এটি একটি ভিন্ন উত্তর। এসকিউএল তুলনা সংস্করণ নিয়ন্ত্রণ ডাটাবেস না, যখনই SQL উত্স কন্ট্রোল জন্য বিশেষভাবে ডিজাইন করা হয়
যোগ লেখক David Atkinson, উৎস

ভিএস ২010 এর সাথে, ডাটাবেজ প্রজেক্টটি ব্যবহার করুন।

  1. Script out your database
  2. Make changes to scripts or directly on your db server
  3. Sync up using Data > Schema Compare

একটি নিখুঁত ডিবি সংস্করণ সমাধান করে, এবং DB এর একটি বায়ু সমন্বয় করে তোলে।

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

DBGhost চেক করুন http://www.innovartis.co.uk/ । আমি এখন 2 বছর ধরে একটি স্বয়ংক্রিয় ফ্যাশন ব্যবহার করেছি এবং এটি মহান কাজ করে। এটা ডেটাবেস ছাড়া, আমাদের DB একটি জাভা বা সি নির্মাণ মত অনেক ঘটতে পারবেন। আপনি জানেন আমি কি বলতে চাচ্ছি.

0
যোগ

ডাম্পটি একটি সোর্স কোড কন্ট্রোল সিস্টেমে তৈরি করতে যেটা একটু বেশি দ্রুত, আপনি sysobjects এর সংস্করণ তথ্য ব্যবহার করে শেষ সময় থেকে কোন বস্তুর পরিবর্তন করেছেন তা দেখতে পারেন।

Setup: Create a table in each database you want to check incrementally to hold the version information from the last time you checked it (empty on the first run). Clear this table if you want to re-scan your whole data structure.

IF ISNULL(OBJECT_ID('last_run_sysversions'), 0) <> 0 DROP TABLE last_run_sysversions
CREATE TABLE last_run_sysversions (
    name varchar(128), 
    id int, base_schema_ver int,
    schema_ver int,
    type char(2)
)

Normal running mode: You can take the results from this sql, and generate sql scripts for just the ones you're interested in, and put them into a source control of your choice.

IF ISNULL(OBJECT_ID('tempdb.dbo.#tmp'), 0) <> 0 DROP TABLE #tmp
CREATE TABLE #tmp (
    name varchar(128), 
    id int, base_schema_ver int,
    schema_ver int,
    type char(2)
)

SET NOCOUNT ON

-- Insert the values from the end of the last run into #tmp
INSERT #tmp (name, id, base_schema_ver, schema_ver, type) 
SELECT name, id, base_schema_ver, schema_ver, type FROM last_run_sysversions

DELETE last_run_sysversions
INSERT last_run_sysversions (name, id, base_schema_ver, schema_ver, type)
SELECT name, id, base_schema_ver, schema_ver, type FROM sysobjects

-- This next bit lists all differences to scripts.
SET NOCOUNT OFF

--Renamed.
SELECT 'renamed' AS ChangeType, t.name, o.name AS extra_info, 1 AS Priority
FROM sysobjects o INNER JOIN #tmp t ON o.id = t.id
WHERE o.name <> t.name /*COLLATE*/
AND o.type IN ('TR', 'P' ,'U' ,'V')
UNION 

--Changed (using alter)
SELECT 'changed' AS ChangeType, o.name /*COLLATE*/, 
       'altered' AS extra_info, 2 AS Priority
FROM sysobjects o INNER JOIN #tmp t ON o.id = t.id 
WHERE (
   o.base_schema_ver <> t.base_schema_ver
OR o.schema_ver      <> t.schema_ver
)
AND  o.type IN ('TR', 'P' ,'U' ,'V')
AND  o.name NOT IN ( SELECT oi.name 
         FROM sysobjects oi INNER JOIN #tmp ti ON oi.id = ti.id
         WHERE oi.name <> ti.name /*COLLATE*/
         AND oi.type IN ('TR', 'P' ,'U' ,'V')) 
UNION

--Changed (actually dropped and recreated [but not renamed])
SELECT 'changed' AS ChangeType, t.name, 'dropped' AS extra_info, 2 AS Priority
FROM #tmp t
WHERE    t.name IN ( SELECT ti.name /*COLLATE*/ FROM #tmp ti
         WHERE NOT EXISTS (SELECT * FROM sysobjects oi
                           WHERE oi.id = ti.id))
AND  t.name IN ( SELECT oi.name /*COLLATE*/ FROM sysobjects oi
         WHERE NOT EXISTS (SELECT * FROM #tmp ti
                           WHERE oi.id = ti.id)
         AND   oi.type  IN ('TR', 'P' ,'U' ,'V'))
UNION

--Deleted
SELECT 'deleted' AS ChangeType, t.name, '' AS extra_info, 0 AS Priority
FROM #tmp t
WHERE NOT EXISTS (SELECT * FROM sysobjects o
                  WHERE o.id = t.id)
AND t.name NOT IN (  SELECT oi.name /*COLLATE*/ FROM sysobjects oi
         WHERE NOT EXISTS (SELECT * FROM #tmp ti
                           WHERE oi.id = ti.id)
         AND   oi.type  IN ('TR', 'P' ,'U' ,'V'))
UNION

--Added
SELECT 'added' AS ChangeType, o.name /*COLLATE*/, '' AS extra_info, 4 AS Priority
FROM sysobjects o
WHERE NOT EXISTS (SELECT * FROM #tmp t
                  WHERE o.id = t.id)
AND      o.type  IN ('TR', 'P' ,'U' ,'V')
AND  o.name NOT IN ( SELECT ti.name /*COLLATE*/ FROM #tmp ti
         WHERE NOT EXISTS (SELECT * FROM sysobjects oi
                           WHERE oi.id = ti.id))
ORDER BY Priority ASC

Note: If you use a non-standard collation in any of your databases, you will need to replace /* COLLATE */ with your database collation. i.e. COLLATE Latin1_General_CI_AI

0
যোগ
খুব দরকারী স্ক্রিপ্ট, ধন্যবাদ
যোগ লেখক pmcilreavy, উৎস

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

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

যেহেতু মাইগ্রেটগুলি ActiveRecord এর একটি অংশ, তারা সাধারণত পুরো স্ট্যাকের রেইলস অ্যাপ্লিকেশানগুলি ব্যবহার করে; যাইহোক, আপনি অন্তত প্রচেষ্টার সঙ্গে রেলওয়ে থেকে ActiveRecord স্বাধীন ব্যবহার করতে পারেন এআর এর ব্যবহার করার আরও বিস্তারিত চিকিত্সার জন্য এখানে দেখুন রেলের বাইরে মাইগ্রেশন

0
যোগ

এই "হার্ড সমস্যা" পার্শ্ববর্তী উন্নয়ন এক। যতটা আমি জানি কোন নিখুঁত সমাধান আছে।

If you only need to store the database structure and not the data you can export the database as SQL queries. (in Enterprise Manager: Right click on database -> Generate SQL script. I recommend setting the "create one file per object" on the options tab) You can then commit these text files to svn and make use of svn's diff and logging functions.

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

যদি আপনি সমস্ত ডেটা পাশাপাশি রাখতে চান তবে আমি সুপারিশ করব যে আপনি ডাটাবেসের ব্যাকআপ রাখুন এবং রেডগেট ( http ব্যবহার করে) : //www.red-gate.com/ ) তুলনা করার জন্য পণ্য। তারা সস্তা আসা না, কিন্তু তারা প্রতি পয়সা মূল্যবান হয়।

0
যোগ
@ টাইচম্যান: ডেটাগ্র্রোভ এসকিউএল সার্ভারকে সমর্থিত বলে মনে হচ্ছে না, এবং এর মত কোনও প্রশ্নে প্রাসঙ্গিকতা নেই।
যোগ লেখক Neolisk, উৎস
আপনি যদি "প্রতি ফাইল প্রতি অবজেক্ট" বিকল্পটি ব্যবহার করেন তবে ডাটাবেস স্ক্রিপ্ট চালানোর জন্য কোন অর্ডারটি কাজ করবেন?
যোগ লেখক Jamie Kitson, উৎস
তথ্য সংক্রান্ত - আপনি আপনার সমগ্র DB (তথ্য অন্তর্ভুক্ত) সংস্করণ সংরক্ষণ করতে OffScale DataGrove ব্যবহার করতে পারেন। আপনি পরে আপনার ডিবি দুটি ভার্চুয়াল কপি তৈরি করতে এটি ব্যবহার করতে পারেন যা লাল গেট এর পণ্যের সাথে তুলনা করা যায়। এটি পরীক্ষা তথ্য উৎপন্ন করার জন্য আপনাকে সংরক্ষণও করে - আপনি বিভিন্ন পরীক্ষার ক্ষেত্রে (পুরো ডিবি সম্পূর্ণ, ভার্চুয়াল প্রতিলিপিগুলি) মেলানোর জন্য DB সংস্করণ সংরক্ষণ করতে পারেন।
যোগ লেখক Taichman, উৎস

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

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

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

0
যোগ

আমরা কেবল টিম ফাউন্ডেশন সার্ভার ব্যবহার শুরু করেছি। আপনার ডাটাবেস মাঝারি আকারের হয়, তারপর ভিসুয়াল স্টুডিও তুলনা, তথ্য তুলনা, ডাটাবেস রিফেক্টর টুলস, ডাটাবেস টেস্টিং ফ্রেমওয়ার্ক, এমনকি এমনকি তথ্য প্রজন্মের সরঞ্জাম নির্মিত সঙ্গে কিছু চমৎকার প্রকল্প একনিষ্ঠতা আছে।

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

টিএফএস ডাটাবেস প্রধান আর্ক ব্লগ

এমএস টিএফএস সাইট

0
যোগ

রেড গেট এর এসকিউএল প্রোডাক্ট কেবল আপনাকে অজানা-স্তরের তুলনা করতে দেয় না এবং এটি থেকে পরিবর্তন স্ক্রিপ্টগুলি তৈরি করতে দেয় না, তবে এটি আপনাকে আপনার ডাটাবেস বস্তুগুলিকে অবজেক্টের ধরন অনুসারে এক ফোল্ডার অবজেক্টে এক্সপোর্ট করতে দেয় যা এক [objectname] .sql তৈরি করে এই ডিরেক্টরির মধ্যে প্রতি বস্তু স্ক্রিপ্ট অবজেক্ট-টাইপ হায়ারার্কিটি এইরকম:

\ কার্যাবলী
\ সিকিউরিটি
\ নিরাপত্তা \ ভূমিকা
\ নিরাপত্তা \ স্কীমাস
\ নিরাপত্তা \ ব্যবহারকারীরা
\ সঞ্চয়কৃত পদ্ধতি
\ টেবিল

পরিবর্তনগুলি সম্পন্ন করার পরে আপনি যদি আপনার স্ক্রিপ্ট একই রুট ডিরেক্টরিতে ডাম্প করেন তবে আপনি এটি ব্যবহার করতে পারেন আপনার SVN রেপো আপডেট করার জন্য এবং প্রতিটি বস্তুর একটি চলমান ইতিহাসকে পৃথকভাবে রাখুন।

0
যোগ
আমরা শুধু এসকিউএল সোর্স কন্ট্রোলকে মুক্তি দিয়েছি, যা এসএসএল এস.এস.এল এর আচরণকে আপনি এসএসএমএসে বর্ণনা করেছেন এবং SVN এবং TFS এর সাথে লিঙ্কগুলি যুক্ত করেছেন। আমি এই প্রশ্নের একটি আলাদা উত্তর যোগ করেছি যা আরো বিস্তারিতভাবে বর্ণনা করে এটি কী করে। লাল-gate.com/products/SQL_Source_Control/index.htm
যোগ লেখক David Atkinson, উৎস

একটি সময় আগে আমি একটি সম্পূর্ণ ডিবি স্ক্রিপ্ট বন্ধ এবং VSS মধ্যে পেতে DMO এবং VSS বস্তু ব্যবহার করে একটি VB বেস মডিউল পাওয়া। আমি এটি একটি VB স্ক্রিপ্ট মধ্যে পরিণত এবং পোস্ট এটি এখানে । আপনি সহজেই VSS কলগুলি গ্রহণ করতে পারেন এবং সমস্ত স্ক্রিপ্ট তৈরি করতে DMO স্টাফ ব্যবহার করতে পারেন, এবং তারপর VBScript কে তাদের চেক করতে কল করতে একই ব্যাচ ফাইল থেকে SVN ডাকতে পারেন?

ডেভ জে

0
যোগ

আপনি Liquibase ( http://www.liquibase.org/ ) দেখতে চাইতে পারেন। এমনকি যদি আপনি নিজে নিজে টুল ব্যবহার না করেন তবে এটি ডেটাবেস পরিবর্তন ব্যবস্থাপনা বা রিফ্যাক্টরটিং এর ধারণাগুলিকে সুন্দরভাবে পরিচালনা করে।

0
যোগ
আমরা ধারাবাহিক ডেলিভারি জন্য একটি একক শাখায় 5 বিতরণ দল Liquibase ব্যবহার এবং এটি মহান কাজ করছে। আমরা বিভিন্ন পরিবেশে 10+ ডাটাবেস অ্যাপ্লিকেশন ইনস্টল করেছি। আমরা এটি স্কিমা, ইনডেক্সিং, পার্টিশন, কোড, সন্ধান ডেটা, গ্রুপ এবং গ্রুপ অনুমতিগুলি পরিচালনা করতে ব্যবহার করি। আমরা এটি Oracle, Postgresql এবং MSSQL এর জন্য ব্যবহার করি।
যোগ লেখক Peter Henell, উৎস
যদি আমি সঠিকভাবে প্রবর্তনের উপর ভিত্তি করে বুঝতে পারি, তাহলে আপনার এসকিউএলের পরিবর্তে আপনার বস্তুকে প্রকাশ করতে কিছু মালিকানাধীন xml ভাষা জানা প্রয়োজন? একটি ফ্যান না।
যোগ লেখক JDPeckham, উৎস

যেহেতু আমাদের অ্যাপটি একাধিক RDBMS- তে কাজ করে, আমরা ডাটাবেস-নিরপেক্ষ টর্কে ব্যবহার করে সংস্করণ নিয়ন্ত্রণে আমাদের স্কিমা সংজ্ঞাটি সংরক্ষণ করি ফরম্যাট (XML)। আমরা XML- র মতো আমাদের ডাটাবেসের জন্য রেফারেন্স ডেটা সংস্করণ-নিয়ন্ত্রণ করি (যেখানে "সম্পর্ক" রেফারেন্স টেবিলের মধ্যে একটি):

  
  
  etc.

আমরা তারপর স্কিমা আপগ্রেড এবং রেফারেন্স ডেটা আপগ্রেড স্ক্রিপ্ট তৈরি করার জন্য হোম ভিত্তিক সরঞ্জামগুলি ব্যবহার করি যা ডাটাবেসের সংস্করণ এক্স থেকে সংস্করণ X + 1 এ যেতে প্রয়োজন।

0
যোগ

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

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

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

0
যোগ

একটি অতিরিক্ত সুপারিশ এবং একটি সাজা সঙ্গে, RedGate সরঞ্জাম সুপারিশ যারা প্রত্যেকের জন্য +1

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

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

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

আমার অভিজ্ঞতাটি দ্বিগুণ হয়েছে:

  1. আপনার ডেভেলপার ডেভেলপমেন্ট ডেভেলপমেন্টের ডেভেলপারদের দ্বারা পরিবর্তনগুলি পরিচালনা করতে হবে।

  2. আপনাকে গ্রাহকদের সাইটগুলির ডাটাবেস আপগ্রেডগুলি পরিচালনা করতে হবে।

# 1 হ্যান্ডেল করার জন্য আপনাকে একটি শক্তিশালী ডাটাবেস ডিফ্রফ / মার্জ টুল প্রয়োজন হবে। সেরা হাতিয়ার স্বয়ংক্রিয়ভাবে একত্রিত করা সম্ভব যতটা সম্ভব আপনি আনলিমিটেড দ্বন্দ্বগুলি ম্যানুয়ালি সমাধান করতে পারবেন।

নিখুঁত টুলটি 3-উপায় মার্জ অ্যালগরিদম ব্যবহার করে একত্রীকরণের অপারেশনগুলিকে পরিচালনা করতে হবে যা BAISE ডাটাবেসের সাথে সম্পর্কিত থিয়ারস ডেটাবেস এবং MINE ডেটাবেস-এর মধ্যে পরিবর্তন করা হয়।

I wrote a commercial tool that provides manual merge support for SQLite databases and I'm currently adding support for 3-way merge algorithm for SQLite. Check it out at http://www.sqlitecompare.com

# 2 হ্যান্ডেল করার জন্য আপনাকে একটি আপগ্রেড ফ্রেমওয়ার্ক প্রয়োজন হবে।

মৌলিক ধারণা হল একটি স্বয়ংক্রিয় আপগ্রেড ফ্রেমওয়ার্ক যা একটি বিদ্যমান এসকিউএল স্কিম থেকে নতুন এসকিউএল স্কিমে আপগ্রেড করে এবং প্রতিটি বিদ্যমান DB ইনস্টলেশনের জন্য একটি আপগ্রেড পথ তৈরি করতে পারে।

http://www.codeproject.com/KB/ এ বিষয়টির উপর আমার নিবন্ধটি দেখুন ডাটাবেস / sqlite_upgrade.aspx আমি কি বিষয়ে কথা বলছি তা সাধারণ ধারণা পেতে।

গুড লাক

লিওন লেভি

0
যোগ

আমি ESV উত্তরের সাথে একমত এবং সঠিক কারণে আমি খুব সামান্য একটি ফাইলের ডাটাবেস আপডেটগুলি বজায় রাখার জন্য কিছুটা পিছিয়ে গিয়েছিলাম যা কিছুটা উত্স কোড ছাড়াই দীর্ঘ প্রজেক্টটি বজায় রাখতে পারে। এটি ডেভেলপারদের পাশাপাশি UAT এবং উত্পাদনের সহজ আপডেটগুলির অনুমতি দেয়। টুলটি কাজ করে কিন্তু SQL সার্ভার এবং মাইএসকিউএল

কিছু প্রকল্প বৈশিষ্ট্য:

  • স্কিমা পরিবর্তনগুলি মঞ্জুরি দেয়
  • মূল্য বৃক্ষের জনগোষ্ঠীকে অনুমতি দেয়
  • উদাহরণস্বরূপ আলাদা পরীক্ষা ডেটা ঢোকানোর অনুমতি দেয়। UAT করুন
  • রোলব্যাকের বিকল্প (স্বয়ংক্রিয় নয়)
  • এর অনুমতি দেয়
  • এসকিউএল সার্ভার এবং মাইএসকিউএল সমর্থন সমর্থন করে
  • সংস্করণ নিয়ন্ত্রণে আপনার বিদ্যমান ডাটাবেসটি একটি সহজ কমান্ড (কেবল SQL সার্ভার ... এখনও MySQL এ কাজ করে) দিয়ে আমদানি করার ক্ষমতা আছে

কোড গুগল কোড হোস্ট করা হয়। আরও কিছু তথ্যের জন্য Google কোড চেক করুন

http://code.google.com/p/databaseversioncontrol_

0
যোগ

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

0
যোগ

প্রথমত, আপনার জন্য সংস্করণ নিয়ন্ত্রণ ব্যবস্থা নির্বাচন করুন যা আপনার জন্য উপযুক্ত:

  • কেন্দ্রীয় সংস্করণ কন্ট্রোল সিস্টেম - একটি আদর্শ সিস্টেম যেখানে ব্যবহারকারীরা ফাইলগুলিতে কাজ করার পূর্বে / পরে পরীক্ষা করে এবং ফাইলগুলি একক কেন্দ্রীয় সার্ভারে রাখা হচ্ছে

  • বিতরণ করা সংস্করণ নিয়ন্ত্রণ ব্যবস্থা - একটি সিস্টেম যেখানে সংগ্রহস্থল ক্লোন করা হচ্ছে, এবং প্রতিটি ক্লোন আসলে সংগ্রহস্থলের সম্পূর্ণ ব্যাকআপ, তাই কোনও সার্ভার ক্র্যাশ করে, তাহলে এটি পুনরুদ্ধার করার জন্য কোনো ক্লোন করা সংগ্রহস্থল ব্যবহার করা যেতে পারে আপনার প্রয়োজনের জন্য সঠিক সিস্টেম নির্বাচন করার পরে, আপনি প্রতিটি সংস্করণ নিয়ন্ত্রণ সিস্টেমের মূল যা সংগ্রহস্থল স্থাপন করতে হবে এই সমস্ত নিম্নলিখিত নিবন্ধে ব্যাখ্যা করা হয়েছে: http://solutioncenter.apexsql.com/sql-server-source-control-part-i-understanding-source-control-basics/ ?

  • আপনি

একটি সংগ্রহস্থল স্থাপন করার পরে, এবং একটি কেন্দ্রীয় সংস্করণ নিয়ন্ত্রণ সিস্টেমের ক্ষেত্রে একটি কার্যকরী ফোল্ডার, আপনি এই প্রবন্ধ । এটি দেখায় কিভাবে একটি উন্নয়ন পরিবেশে উৎস নিয়ন্ত্রণ সেটআপ ব্যবহার করে:

  • MSSCCI প্রদানকারীর মাধ্যমে SQL সার্ভার ম্যানেজমেন্ট স্টুডিও,

  • ভিজুয়াল স্টুডিও এবং SQL সার্ভার ডেটা সরঞ্জাম

  • একটি তৃতীয় পক্ষের টুল ApexSQL সোর্স কন্ট্রোল
0
যোগ

I would suggest using comparison tools to improvise a version control system for your database. A good alternative are xSQL Schema Compare and xSQL Data Compare.

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

আচ্ছা, যদি আপনি সংস্করণ নিয়ন্ত্রণের অধীনেও তথ্য পেতে চান তবে আপনি এক্সএসএলকিউএল ডাটা ব্যবহার করতে পারেন আপনার ডাটাবেসের জন্য পরিবর্তন স্ক্রিপ্টগুলি তৈরি করুন এবং আপনার সংস্করণ নিয়ন্ত্রণে .sql ফাইলগুলি যোগ করুন। আপনি তারপর এই স্ক্রিপ্ট চালানোর জন্য / প্রত্যাশিত কোন সংস্করণ আপনি চান। মনে রাখবেন যে 'প্রত্যাবর্তন' কার্যকারিতার জন্য আপনাকে পরিবর্তন স্ক্রিপ্টগুলি তৈরি করার প্রয়োজন হতে পারে যা সম্পাদিত হওয়ার সময় সংস্করণ 3 একই সংস্করণ 2 এবং 'আপডেট' কার্যকারিতা হিসাবে তৈরি করবে, আপনাকে পরিবর্তিত স্ক্রিপ্ট তৈরি করতে হবে যা বিপরীত কাজ করে।

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

দাবী পরিত্যাগ: আমি xSQL এর সাথে সংযুক্ত করছি

0
যোগ