পরীক্ষার লাইভ থেকে SQL সার্ভার ডেটাবেস স্থাপন

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

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

অথবা - টি-এসকিউএলের "এক্সপ্ল্যানে তৈরি টেবিল" এর অভাবকে আপনি কি এমন কিছু করেন যা SQL সার্ভারে একটি বিদ্যমান ডেটাবেস রপ্তানি করে যা আপনি টার্গেট সার্ভারে চালাতে পারেন? যদি হ্যাঁ হয়, তাহলে কি এমন একটি সরঞ্জাম আছে যা স্বয়ংক্রিয়ভাবে একটি এসকিউএল প্রশ্নে একটি ডেটাবেস ডাম্প করতে পারে এবং যে কমান্ড লাইন বন্ধ করে? (আবার, এন্টারপ্রাইজ ম্যানেজার / ম্যানেজমেন্ট স্টুডিও এক্সপ্রেস গণনা করা হয় না)।

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

এখন, আমি রেড গেট পণ্যগুলি সম্পর্কে অনেক কিছু শুনেছি, কিন্তু এর জন্য শখ প্রকল্প, দাম একটি সামান্য খাড়া হয়।

সুতরাং, কি আপনি স্বয়ংক্রিয়ভাবে টেস্ট থেকে লাইভ SQL সার্ভার ডাটাবেস নিয়োজন ব্যবহার করছেন?

0
যোগ সম্পাদিত
মতামত: 1

14 উত্তর

আমি সাবসননিক এর মাইগ্রেশন প্রক্রিয়া ব্যবহার করছি তাই আমি শুধু একটি ডেলের আছে squential ক্রমে ক্লাস যা আছে 2 পদ্ধতি, আপ এবং নিচে নান্টের মধ্যে ক্রমাগত ইন্টিগ্রেশন / নির্মাণ স্ক্রিপ্ট হুক আছে, যাতে আমি আমার ডাটাবেসের আপগ্রেড স্বয়ংক্রিয় করতে পারি।

এটি বিশ্বের সেরা নিষ্ঠুর নয়, কিন্তু এটি DDL লেখার বীট।

0
যোগ

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

আমি Microsoft.SqlServer.BatchParser.dll এবং Microsoft.SqlServer.ConnectionInfo.dll কনফিগারেশন অ্যাপ্লিকেশনে লাইব্রেরি ব্যবহার।

0
যোগ

আপনি যদি এই বাণিজ্যের একজন অনুমোদিত প্রতিনিধি না হন তবে আপনার এই বাণিজ্য অধিকার করার অনুমতি নেই। আরো তথ্যের জন্য এখানে ক্লিক করুন। আপনার অনুরোধকে সহায়তা করার জন্য আমাদের আরো অধিক তথ্য দিন। আপনি কি আমাদেরঅবস্থান ও শর্তাবলীবুঝতে পেরেছেন? হ্যাঁ আপনি কি আপনার অধিকৃত পৃষ্ঠা থেকে এই বাণিজ্য কে সরিয়ে ফেলতে চান?

তারা বেশিরভাগ জনপ্রিয় ডেটাবেসগুলির জন্য সংস্করণ রয়েছে, অবশ্যই স্ক্যাল সার্ভার সহ।

0
যোগ

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

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

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

0
যোগ

For my projects I alternate between SQL Compare from REd Gate and the Database Publishing Wizard from Microsoft which you can download free here.

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

উপরে দিকে, এটি আপনার স্কিমা এবং ডেটা স্থানান্তর করতে পারে যা একটি বিনামূল্যের টুলের জন্য খারাপ নয়।

0
যোগ

SMO / DMO ব্যবহার করে, এটি আপনার স্কিমের একটি স্ক্রিপ্ট তৈরি করা খুব কঠিন নয়। ডেটা একটু মজা আছে, কিন্তু এখনও করতে সক্ষম।

সাধারণত, আমি "স্ক্রিপ্ট এটি" পদ্ধতিটি গ্রহণ করি, তবে আপনি এই লাইনগুলির সাথে কিছুটা বিবেচনা করতে চাইতে পারেন:

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

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

0
যোগ

আমি সম্মত যে স্ক্রিপ্টিং সবকিছু ভাল উপায় যেতে হয় এবং আমি কর্মক্ষেত্রে অধ্যাপনা কি। আপনার DB এবং বস্তুর সৃষ্টি থেকে আপনার লিষ্টিং টেবিলগুলি সর্বাধিক সন্নিবেশ করা উচিত

আপনি UI- এ যা কিছু শুধুমাত্র অনুবাদ না (বিশেষত পরিবর্তন জন্য ... প্রথম স্থাপনার জন্য এত না) এবং একটি রেডগেট প্রস্তাব মত সরঞ্জাম প্রয়োজন শেষ পর্যন্ত হবে

0
যোগ

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

অন্যথায়, আমি সম্মত যে redgate ব্যয়বহুল আপনি আপনার জন্য এটি একটি ক্রয় কোম্পানি না থাকে। আপনি যদি আপনার জন্য এটি কিনতে একটি কোম্পানী পেতে পারেন যদিও, এটি সত্যিই এটি মূল্য!

0
যোগ
+1 আমি SSMS (অথবা এসকিউএল 2000 এন্টারপ্রাইজ ম্যানেজার) এর ডিজাইন জিওইআই এর মাধ্যমে পরিবর্তন করতে পারি কিন্তু স্ক্রিপ্ট তৈরি করতে "পরিবর্তন করুন স্ক্রিপ্ট তৈরি করুন" আইকনটি ব্যবহার করি, যা আমি পরবর্তী রিলিজের জন্য পরিবর্তন স্ক্রিপ্ট তৈরি করার জন্য সংরক্ষণ করি। একটি চেকবক্স আছে "স্বয়ংক্রিয়ভাবে পরিবর্তন স্ক্রিপ্ট করুন" চেকবক্সে যদি আপনি এক দিন ভুলে যান!
যোগ লেখক Kristen, উৎস

আমি সোর্স কন্ট্রোল সবকিছু রাখা এবং ম্যানুয়ালি সব পরিবর্তন স্ক্রিপ্টিং সঙ্গে একমত। একটি রিলিজের জন্য স্কিমাতে পরিবর্তনগুলি যে প্রকাশের জন্য বিশেষভাবে তৈরি একটি স্ক্রিপ্ট ফাইলের মধ্যে যায়। সমস্ত সংরক্ষিত procs, মতামত, ইত্যাদি পৃথক ফাইলের মধ্যে যাওয়া উচিত এবং স্রোত নিয়ন্ত্রণ যায় হিসাবে .cs বা .aspx মত চিকিত্সা। প্রোগ্রামেবিলিটি স্টাফ আপডেট করার জন্য আমি একটি বড় .sql ফাইল তৈরি করতে একটি পাওয়ারহেল স্ক্রিপ্ট ব্যবহার করি।

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

আমিও শিখেছি যে ইন্ডেক্সগুলি কোড ফাইলের মত আচরণ করা উচিত এবং উৎস নিয়ন্ত্রণে রাখা উচিত।

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

0
যোগ

RedGate SqlCompare is a way to go in my opinion. We do DB deployment on a regular basis and since I started using that tool I have never looked back. Very intuitive interface and saves a lot of time in the end.

প্রো সংস্করণটিও সোর্স কন্ট্রোল একীকরণের জন্য স্ক্রিপ্টিং এর যত্ন নেবে।

0
যোগ

আমি DDL হিসাবে আমার ডাটাবেস তৈরি করি এবং তারপর DDL একটি স্কিমা বজায় রাখার ক্লাসে মোড়ানো করি। আমি প্রথম স্থানে DDL তৈরি করতে বিভিন্ন জিনিস করতে পারি কিন্তু মৌলিকভাবে আমি কোডে থাকা সমস্ত স্কিমটি করি। এর মানে হল যে যদি কোনও অ-ডিডিএল জিনিসগুলি যা এসকিউএলের সাথে ভাল মানানসই না করে তবে আপনি পদ্ধতিগত যুক্তি লিখতে পারেন এবং এটি ডিডিএল / ডিএমএল এর লাম মধ্যে চালাতে পারেন।

আমার dbs তারপর একটি টেবিলের আছে যা বর্তমান সংস্করণ সংজ্ঞায়িত করে যাতে একটি তুলনামূলকভাবে সহজবোধ্য পরীক্ষার সেট কোড করতে পারেন:

  1. ডিবি কি বিদ্যমান? এটি তৈরি না হলে।
  2. কি ডিবি বর্তমান সংস্করণ? যদি না হয় তবে ক্রম অনুসারে পদ্ধতিটি চালনা করুন, যাতে স্কিমটি আপ টু ডেট (আপনি নিশ্চিত করতে ব্যবহারকারীকে অনুরোধ করতে পারেন এবং এই সময়ে ব্যাকআপগুলি - আদর্শভাবে)।

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

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

একটি দল পরিবেশে উন্নয়নশীল কিছু সমস্যা আছে কিন্তু যে কোনওভাবে দেওয়া একটি কম বা কম!

Murph

0
যোগ

I'm currently working the same thing to you. Not only deploying SQL Server databases from test to live but also include the whole process from Local -> Integration -> Test -> Production. So what can make me easily everyday is I do NAnt task with Red-Gate SQL Compare. I'm not working for RedGate but I have to say it is good choice.

0
যোগ
উত্তর লিংক মৃত
যোগ লেখক Pang, উৎস

আমি আমার সব বস্তুর এবং তথ্য জন্য স্ক্রিপ্ট বজায় রাখুন স্থাপনের জন্য আমি এই ফ্রি ইউটিলিটিটি লিখেছিলাম - http://www.sqldart.com । এটি আপনাকে আপনার স্ক্রিপ্ট ফাইলগুলি পুনর্চালনা দেবে এবং একটি লেনদেনের মধ্যে পুরো লটটি চালাবে।

0
যোগ