এসকিউএল সার্ভার সহ সংস্করণ নিয়ন্ত্রণ


14

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

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

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

আমি যে জিনিসটি সামনে এসেছি তা হ'ল স্ক্রিপ্টডিবি 4 এসভিএন নামে এক ওপেন সোর্স প্যাকেজ । এর আগে কেউ কি এটি ব্যবহার করেছে? এটা কি ভালো? এটির জন্য আমার প্রয়োজনীয় জিনিসগুলি কি এটি করতে পারে এবং সেটআপ করা কি খুব সহজ?


1
Has anyone used this before? Is it good? Can it do the things I need it to do and is it pretty simple to get setup?আপনি নিজের জন্য এটি চেষ্টা করতে ভয় পান কেন? শুধু এটি ধরুন এবং চারপাশে খেলুন।
ইয়ান্নিস

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

সবেমাত্র লক্ষ্য করেছেন আপনি এখানে কতটা নতুন। প্রোগ্রামারস এসই কিছুটা সময় বাঁচানোর জন্য প্রশ্ন জিজ্ঞাসা করার পক্ষে ভাল জায়গা নয়, আমরা সত্যই আশা করি আপনি নিজের মতো করে জিনিসটি করেন, অর্থাত জিজ্ঞাসার আগে নিজের গবেষণা করবেন । অথবা, বিকল্পভাবে, চ্যাটে জিজ্ঞাসা করুন (তবে দৃ answers় উত্তরের আশা করবেন না)। এটি বলার পরে, এটি সত্যিকার অর্থে কিছু যায় আসে না কারণ শেষ বাক্যটি আপনার মূল প্রশ্ন নয়, যা আসলে খুব ভাল একটি (এবং সঠিকভাবে ট্যাগ করা হয়েছে, এটি নতুন ব্যবহারকারীদের পক্ষে খুব কমই!)।
ইন্নিস

@ ইয়ানিসরিজোজ - ধন্যবাদ আমি স্ক্রিপ্টডিবি 4 এসভিএন এর জন্য কিছু প্রতিক্রিয়া পেতে পারি কিনা তা দেখার জন্য আমি আড্ডায় যাব এবং মূল প্রশ্নের কোনও আপডেটের জন্য এখানে আবার চেক করব। সম্পাদনা: দেখে মনে হচ্ছে আমার 20 জন প্রতিনিধি না হওয়া পর্যন্ত আমি চ্যাট করতে পারি না। ওহ ভাল, ধৈর্য আমি অনুমান।

উত্তর:


2

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

বিটিডাব্লু: আমি রেডগেট সরঞ্জামটি ব্যবহার করেছি এবং এটি বেশ চালাক এবং মূল্যবান।


সুতরাং মূলত আমি ম্যানেজমেন্ট স্টুডিওতে আমার কাজ করব, এবং তারপরে স্ক্রিপ্টগুলি এসভিএন ডিরেক্টরিতে রফতানি করব এবং মূলত আমি প্রতিবার এটিতে কাজ করে যাব (প্রতিটি রফতানীতে পুরানোগুলি প্রতিস্থাপন করা)? আমি মনে করি এটি কাজ করবে। এটি SVN কার্যকারিতা ফিরিয়ে আনতে এবং স্টাফ করতে সক্ষম রাখবে, তবে হ্যাঁ, এটি এক ধরণের ঝামেলা হবে ss সম্ভবত আমি রেডগেটের দামটি পরীক্ষা করে দেখব এবং এটি আমার পক্ষে মূল্যবান কিনা।

@ স্কট - ম্যানুয়াল পদ্ধতি কাজ করতে পারে, আপনার এসকিউএল বিকাশ সম্পর্কে আলাদাভাবে ভাবতে হবে। বস্তুর স্ক্রিপ্ট করা সংস্করণগুলি হ'ল "অফিসিয়াল" এবং এসকিউএল এর একটি এটির একটি সংকলিত সংস্করণ। ঠিক আপনার উত্স কোড মত।
জনএফএক্স

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

1

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

  • প্রকল্পগুলি সংকলন করুন - এটি কেবল একটি চূড়ান্ত স্ক্রিপ্ট তৈরি করে না, এটি নিশ্চিত করে যে বস্তুর নাম ইত্যাদি বিদ্যমান।
  • স্থিতিশীল কোড বিশ্লেষণ সম্পাদন করুন - উদাহরণস্বরূপ, আপনি [dbo]যে সুন্দর 30% পারফরম্যান্স বুস্টের জন্য বস্তুগুলিকে সর্বদা তাদের স্কিমা (উদাহরণস্বরূপ বেশিরভাগ ক্ষেত্রে) অন্তর্ভুক্ত করে উল্লেখ করেছেন তা নিশ্চিত করে।
  • প্রকল্পের বিভিন্ন সংস্করণ তুলনা করে বিভিন্ন স্ক্রিপ্ট তৈরি করুন।
  • একটি ডেটাবেস বা স্ক্রিপ্ট (বিপরীত প্রকৌশলী) থেকে আপনার প্রকল্প আপডেট করুন।
  • Intellisense।
  • কোনও ডায়াগ্রামিং সরঞ্জাম নেই।

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


0

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

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


এটিকে আরও কিছুটা ব্যাখ্যা করতে এবং এই জাতীয় কিছু স্থাপন করতে কোনও গাইড?

প্রকৃতপক্ষে,। নেট প্রযুক্তিগুলির সাথে এক সাথে রেলগুলি ব্যবহার করা খুব ভাল ধারণা নয়।
altern

রেল মাইগ্রেশন সম্পর্কিত অধ্যায় ( গাইডস.রউবিওনরইলস.আর / মিগ্রেশনস html )। এটি শুরু করার জন্য আপনার প্রয়োজনীয় সমস্ত ব্যাকগ্রাউন্ড আপনাকে দিতে কেন এটি একটি ভাল ধারণা enough @ অলটার্ন - যেহেতু আপনি কেবলমাত্র ডাটাবেসগুলি পরিচালনা ও সংস্করণে রেলগুলি ব্যবহার করছেন তাই এটি এবং .NET প্রযুক্তির উপর কোনও প্রভাব থাকতে হবে। আপনি ডিবি তে একইভাবে অ্যাক্সেস করতে এবং ব্যবহার করতে সক্ষম হবেন যেমন আপনি রেল ব্যবহার করছেন না। আপনার উদ্বেগের জন্য কিছু রেফারেন্স দেখে আমার আপত্তি হবে না। আয়রন রুবি কি রুবি এবং রেলগুলির নেট বাস্তবায়ন নয়?
Vinnie

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

0

স্ট্যাকওভারফ্লোতে এটি নিয়ে আগে আলোচনা করা হয়েছে: /programming/

এছাড়াও, এই বাহ্যিক নিবন্ধটি একটি উইন্ডোজ অ্যাপ্লিকেশন আকারে স্যাম্পল কোডের সাথে একসাথে কিছু অতিরিক্ত তথ্য সরবরাহ করেছে http://www.sqlteam.com/article/scriptting-datedia-objects-used-smo-upated

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


আপনি যে দুটি লিঙ্ক সরবরাহ করেছেন সেগুলি হ'ল আমি নিজেই সেটআপ পেতে আগ্রহী তাই আমি এখনই ম্যানুয়াল পদক্ষেপগুলি স্বয়ংক্রিয়ভাবে করতে পারি। তাদের জন্য ধন্যবাদ!

0

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

সুতরাং স্বাভাবিক কর্মপ্রবাহটি হ'ল আপনি আপনার কোডটি পরিবর্তন করতে চান, প্রয়োজন মতো বিকাশ ডাটাবেজে সংশ্লিষ্ট টেবিলগুলি এবং স্প্রোকগুলি পরিবর্তন করতে চান, তবে আপনি আমাদের সেই সরঞ্জামটি চালাবেন যা স্ক্রিপ্টযুক্ত .sql ফাইলগুলিকে রিফ্রেশ করে। তারপরে আপনি একবারে সমস্ত কিছু পরীক্ষা করে দেখুন।

সমস্যাটি হ'ল আপনি যদি সরঞ্জামটি চালাতে ভুলে যান তবে কোডটি "কাজ করবে" (এবং ইউনিট পরীক্ষাগুলি পাস করবে) কারণ ডাটাবেসটি "সঠিক" ছিল তবে নতুন স্প্রোকস / টেবিলগুলি সোর্স কন্ট্রোল নয়।

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

এটি কিছুটা বিরক্তিকর ছিল কারণ একাধিক দিনের বিস্তৃত পরিবর্তনগুলিতে কাজ করা কঠিন হয়ে পড়েছিল তবে কিছুই না থাকার থেকে ভাল ছিল ...


আপনি বিস্তারিত বলতে পারেন Then, we had a script that ran every night to "validate" that everything in our "development" database was reflected in source control.? আপনার প্রতিক্রিয়ার জন্য ধন্যবাদ.

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