স্কিমা মাইগ্রেশন: এসকিউএল সার্ভার ডেটা সরঞ্জাম বনাম লিকুইবেস এবং ফ্লাইওয়ে


11

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

তবে আমার বস আমাকে বলেছিলেন যে এসকিউএল সার্ভার ডেটা সরঞ্জাম (এসএসডিটি) একই কাজ অর্জন করে। আমি নিশ্চিত কিনা তা নিশ্চিত নই তবে আমি ইন্টারনেটে খুব কম খুঁজে পেতে পারি যা এটি সরাসরি লিকুইবেস এবং / অথবা ফ্লাইওয়ের সাথে তুলনা করে।

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

কোনও মতামত অনেক প্রশংসা হবে এমনকি যদি এটি কেবল বলা যায় যে কোনও তুলনা নেই এবং এসএসডিটি মোটেও কোনও স্কিমা মাইগ্রেশন সরঞ্জাম নয়।

উত্তর:


17

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

এসএসডিটি উপায় (এবং রেডগেট এসকিএল এর সাথে তুলনা করার উপায়) একটি প্রয়াস করার জন্য আপনি যদি চান এমন একটি টেবিল পরিবর্তন করতে চান তবে আপনি কী চান তা ঘোষণা করা:

create table a(id int)

দেখতে এমন একটি টেবিলের কাছে:

create table a(id int, another_column varchar(12))

এসএসডিটি দিয়ে আপনি কেবল নিজের টেবিলের সংজ্ঞাটি দ্বিতীয়টিতে পরিবর্তন করুন এবং এসএসডিটি কীভাবে এটি আপগ্রেড করবেন তা নিয়ে চিন্তা করতে দিন (এটি কীভাবে একটি পরিবর্তনীয় টেবিল করতে পারে, কলাম যুক্ত করতে পারে বা কলাম ক্রম পরিবর্তন করে যাতে আপনার টেবিলটি পুনরায় তৈরি করতে হবে)।

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

  1. প্রকাশ 1 - টেবিলের কলাম হ্যালো তৈরি করুন
  2. রিলিজ 2 - জো_ব্লগগুলিতে হ্যালো কলামের নাম পরিবর্তন করুন
  3. 3 টি প্রকাশ করুন - কলামের জো_ব্লাগগুলিকে হ্যালো নাম দিন
  4. রিলিজ 4 - কলাম জো_ব্লগগুলি তৈরি করুন

যদি প্রকাশের কোনওটি মিস হয় তবে পরেরগুলির কোনওটিই চালিয়ে যেতে পারে না।

আপগ্রেড স্ক্রিপ্টগুলির সুবিধা (লিকুইবেস, ডিবিইউপি, ইত্যাদি):

  • স্ক্রিপ্টগুলির উপর আপনার সম্পূর্ণ নিয়ন্ত্রণ রয়েছে
  • ডিবিএর / বিকাশকারীরা এটিতে অভ্যস্ত

তুলনা / মার্জ করার সুবিধা (এসএসডিটি, রেডগেট এসকিউএল তুলনা করুন):

  • আপগ্রেড স্ক্রিপ্ট লিখতে হবে না
  • যে কোনও নির্দিষ্ট সংস্করণে পৌঁছানো সহজ just সংস্করণটিকে কেবল তুলনা করুন এবং মার্জ করুন

আপগ্রেড স্ক্রিপ্টগুলির ত্রুটিগুলি:

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

তুলনা / মার্জ ব্যবহারের ত্রুটিগুলি:

  • সরঞ্জামগুলি 100% বিশ্বাসযোগ্য নয়, সম্ভবত অন্যায়ভাবে
  • এসএসডিটি একটি কার্যনির্বাহী প্রকল্পের প্রয়োজন, অনেকগুলি ডাটাবেসে কোড রয়েছে যা আসলে সংকলন বা চালিত হয় না (মনে হয় বাদ দেওয়া টেবিলগুলি নয় তবে পদ্ধতিগুলি নয়), আমি এটি আমার উত্তরাধিকার সূত্রে প্রাপ্ত প্রায় 8/10 ডাটাবেজে দেখেছি :)
  • অনেক ডিবিএ / বিকাশকারী এসএসএমএস / নোটপ্যাডে বিকাশ ছেড়ে দিতে দ্বিধা বোধ করেন

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

আপনি মতামত চেয়েছিলেন তাই আপনি সেখানে যান :)

ইডি


1
এসএসডিটি এসকিউএল সার্ভার ব্যতীত অন্য কিছুর সাথে কাজ করে? যেমন পোস্টগ্রিস?
a_horse_with_no_name

3
কোনও "এসকিউএল সার্ভার ডেটা সরঞ্জামসমূহ" নেই :)
এড এলিয়ট

1
কেন না? এসএসআইএস প্যাকেজটি বেশিরভাগ সমস্ত ওডিবিসি উত্স স্থানান্তর করতে পারে
a_vlad

যদি আমি ভুল বুঝে না পারি তবে আমি কি মনে করি যে আমরা সিসিস প্যাকেজ তৈরির পরিবর্তে ডাটাবেস স্কিমা পরিচালনা করার কথা বলছি? সংশোধন করার জন্য আনন্দিত :)
এড এলিয়ট

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

2

আমি সবেমাত্র শীর্ষ টপ-আপ উত্তর।

সবচেয়ে বড় পার্থক্যটি কেন্দ্রীয় জায়গায় ফ্লাইওয়ে ওয়েব সাইটে বর্ণিত:

শুধুমাত্র একটি সমস্যা সমাধান করে এবং এটি ভাল সমাধান করে। ফ্লাইওয়ে আপনার ডাটাবেস স্থানান্তরিত করে, তাই আপনাকে আর এটি নিয়ে চিন্তা করতে হবে না।

ভিজ্যুয়াল স্টুডিও + এসএসডিটি + এসএসআইএস = সম্পূর্ণ পাওয়ার ইটিএল সরঞ্জাম, যার মধ্যে কেবল একটি আসল ত্রুটি রয়েছে - এটি কেবল উইন্ডোগুলির অধীনে কাজ করে রান প্যাকেজগুলির জন্য এটি উইন্ডোজ + এসকিউএল সার্ভারের প্রয়োজন, তবে বেশিরভাগ উত্সের সাথে কাজ করে।

তথ্য স্থানান্তর / স্থানান্তর করার জন্য - বাজারে প্রচুর পণ্য। বাণিজ্যিক, মুক্ত উত্স, সম্প্রদায় / এক্সপ্রেস এবং ইত্যাদি

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


2

আমি এসকিএল সার্ভার ডেটা সরঞ্জাম এবং ফ্লাইওয়ে উভয়ের সাথেই কাজ করেছি। এসএসডিটি ব্যবহার করে আমি নিম্নলিখিত সুবিধাগুলি পেয়েছি:

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

  3. সংস্করণ 5 বলার সাথে একটি প্রদত্ত ড্যাকপ্যাক একটি ডেটাবেজে প্রয়োগ করা যেতে পারে যা ড্যাকপ্যাক সংস্করণ 1,2,3,4 বা 6,7,8 ইত্যাদিতে রয়েছে যদি এটি 1-4-এ প্রয়োগ করা হয় তবে ডাটাবেসটি আপগ্রেড করা হবে। 6,7 ইত্যাদি প্রয়োগ করা হলে ডিবি ডাউনগ্রেড / ফিরিয়ে দেওয়া হবে। সতর্কতা থাকবে, যদি ডেটা ক্ষতি হয়, যা দমন করা যায়। সুতরাং, আমরা একটি দুর্দান্ত রোলব্যাক বৈশিষ্ট্য পেয়েছি, যা ফ্লাইওয়ে ইত্যাদির মতো অন্যান্য সরঞ্জামগুলির সাথে উপলভ্য নয় fly ফ্লাইওয়ে দিয়ে, পিছনে ঘোরার জন্য একজনকে নতুন স্ক্রিপ্ট সরবরাহ করতে হবে।

  4. ড্যাকপ্যাক একটি লেনদেনে সমস্ত পরিবর্তন প্রয়োগ করে; মানে যদি আপগ্রেডে 5 টি টেবিল পরিবর্তন হয় এবং এর মধ্যে একটি ব্যর্থ হয় তবে পুরো লেনদেনটি আবার ঘুরিয়ে দেওয়া হয়। ফ্লাইওয়ে এটি সমর্থন করে তবে প্রতিটি ফাইলের জন্য।

তবে এসএসডিটি এবং ড্যাকাপ্যাক্স মাইক্রোসফ্ট এসকিউএল সার্ভার নির্দিষ্ট; ফ্লাইওয়ে বিভিন্ন ডাটাবেসের জন্য ব্যবহার করা যেতে পারে।

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

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