আপনি কি আপনার ডাটাবেস আইটেমগুলির জন্য উত্স নিয়ন্ত্রণ ব্যবহার করেন? [বন্ধ]


596

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

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

যাইহোক, আমি জানি যে গল্পটি কীভাবে যায়। বিষয়গুলি কেবল ভুল হয়ে গেছে এবং কিছু গায়েব হওয়ার আগে এটি কেবল সময়ের বিষয়।

এর জন্য কোন সেরা অনুশীলন আছে? আপনার জন্য কাজ করে এমন কিছু কৌশল কী?


পডকাস্ট 54 এর শেষে আলোচনা হয়েছে blog blog.stackoverflow.com/2009/05/podcast-54
ক্রিস মোসচিনি

উত্তর:


387

সংস্করণ নিয়ন্ত্রণে আপনার ডাটাবেস পান অবশ্যই পড়ুন । কে। স্কট অ্যালেনের পোস্টের সিরিজটি দেখুন।

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


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

1
ক্লোনিও নামে ডেটাবেসের জন্য একটি বিতরণযোগ্য সংস্করণ নিয়ন্ত্রণ ব্যবস্থা রয়েছে যা ডাটাবেসের জন্য গিট / গিটহাবের মতো।
অগিওয়ান

134

ডাটাবেসে নিজেরাই? না

স্থিতিশীল ডেটা সন্নিবেশ, সঞ্চিত পদ্ধতি এবং এগুলি সহ স্ক্রিপ্টগুলি সেগুলি তৈরি করে; অবশ্যই. এগুলি পাঠ্য ফাইল, এগুলি প্রকল্পে অন্তর্ভুক্ত রয়েছে এবং অন্য কিছুর মতো চেক ইন করা হয়।

অবশ্যই একটি আদর্শ বিশ্বে আপনার ডাটাবেস পরিচালনার সরঞ্জামটি এটি করবে; তবে আপনাকে কেবল এটি সম্পর্কে শৃঙ্খলাবদ্ধ হতে হবে।


7
মাইএসকিএল ওয়ার্কবেঞ্চের সাহায্যে আপনার কাঠামোগত ফাইলে (এক্সএমএল) সমস্ত কিছুই থাকতে পারে যা একটি জিইউআই দিয়ে খোলা এবং পরিচালনা করা যেতে পারে। এক্সএমএল কেবল পাঠ্য হওয়া, হ্যাঁ এটি একক স্কেল বাক্যটি না লিখে সংস্করণ করা যায়।
লেভিটা

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

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

আমি লক্ষ করব যে আলোচনা শিব এবং ট্রাইঙ্কোকে সাধারণত "রাজ্য-ভিত্তিক" বনাম "অভিবাসন ভিত্তিক" হিসাবে ফ্রেম করা হয়। এটি একটি বেশ বিতর্কিত সমস্যা এবং উভয় পদ্ধতিরই পক্ষে মতামত রয়েছে। আমি নোট করব যে মাইগ্রেশন-ভিত্তিক পদ্ধতির দ্বারা সর্বশেষতম মাইগ্রেশনগুলির সাথে একটি ডেটাবেস তৈরি / প্রতিস্থাপন / আপডেট করা দ্রুততর হয়, যখন একটি রাষ্ট্র-ভিত্তিক পদ্ধতি বাস্তবে পরিবর্তন তৈরি করে। আপনি কোন ঘন ঘন ডাটাবেস পরিবর্তনের (রাজ্য ভিত্তিক ব্যবহার) বা উত্পাদন / পরীক্ষা / স্থানীয় / সিআই (মাইগ্রেশন ভিত্তিক ব্যবহার) এর ঘন ঘন মোতায়েনকে অগ্রাধিকার দেন কিনা এর উপর নির্ভর করে কোন পন্থাটি ভাল depends
ব্রায়ান

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

36

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

তবে কিছুটা কাজ করে আপনিও একই কাজ করতে পারেন। যে কোনও ডিডিএল পরিবর্তন (অ্যালার্ট টেবিল ইত্যাদি) পাঠ্য ফাইলগুলিতে সংরক্ষণ করা যেতে পারে। ফাইলের নামগুলির জন্য একটি সংখ্যক সিস্টেম (বা একটি তারিখ স্ট্যাম্প) রাখুন এবং সেগুলি ক্রমানুসারে প্রয়োগ করুন।

ডিবেতেও রেলগুলির একটি 'সংস্করণ' সারণী রয়েছে যা সর্বশেষ প্রয়োগকৃত স্থানান্তরকে ট্র্যাক করে। আপনি সহজেই একই কাজ করতে পারেন।


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

33

উত্স নিয়ন্ত্রণ ব্যবহার করে ডাটাবেস পরিবর্তনগুলি পরিচালনার জন্য লিকুইবেস দেখুন ।


7
কেবল যোগ করার জন্য, ফ্লাইওয়ে একটি প্রতিযোগিতামূলক পণ্য যা অনুরূপ কার্যকারিতা সরবরাহ করে যা অন্যান্য স্ট্যাকওভারফ্লো থ্রেডগুলিতেও অনুকূল উল্লেখ পেয়ে যায় mention
স্টিভ চেম্বারস

29

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

if [ $VERSION \< '8.0.108' ] ; then
  psql -U cosuser $dbName << EOF8.0.108
    BEGIN TRANSACTION;
    --
    -- Remove foreign key that shouldn't have been there.
    -- PCR:35665
    --
    ALTER TABLE     migratorjobitems
    DROP CONSTRAINT migratorjobitems_destcmaid_fkey;
    -- 
    -- Increment the version
    UPDATE          sys_info
    SET             value = '8.0.108'
    WHERE           key = 'DB VERSION';
    END TRANSACTION;
EOF8.0.108
fi

if [ $VERSION \< '8.0.109' ] ; then
  psql -U cosuser $dbName << EOF8.0.109
    BEGIN TRANSACTION;
    --
    -- I missed a couple of cases when I changed the legacy playlist
    -- from reporting showplaylistidnum to playlistidnum
    --
    ALTER TABLE     featureidrequestkdcs
    DROP CONSTRAINT featureidrequestkdcs_cosfeatureid_fkey;
    ALTER TABLE     featureidrequestkdcs
    ADD CONSTRAINT  featureidrequestkdcs_cosfeatureid_fkey
    FOREIGN KEY     (cosfeatureid)
    REFERENCES      playlist(playlistidnum)
    ON DELETE       CASCADE;
    --
    ALTER TABLE     ticket_system_ids
    DROP CONSTRAINT ticket_system_ids_showplaylistidnum_fkey;
    ALTER TABLE     ticket_system_ids
    RENAME          showplaylistidnum
    TO              playlistidnum;
    ALTER TABLE     ticket_system_ids
    ADD CONSTRAINT  ticket_system_ids_playlistidnum_fkey
    FOREIGN KEY     (playlistidnum)
    REFERENCES      playlist(playlistidnum)
    ON DELETE       CASCADE;
    -- 
    -- Increment the version
    UPDATE          sys_info
    SET             value = '8.0.109'
    WHERE           key = 'DB VERSION';
    END TRANSACTION;
EOF8.0.109
fi

আমি নিশ্চিত যে এটি করার আরও ভাল উপায় আছে তবে এটি এখনও আমার পক্ষে কাজ করেছে।


আমরা প্রতিটি "পৃথক সংস্করণ" পৃথক ফাইলে রাখি এবং এমন একটি সরঞ্জাম রাখি যা ফাইলগুলি যথাযথভাবে চালিত করে except
jwanagel

অ্যাপ্লিকেশন ফাইলগুলির সাথে এসকিউএল স্ক্রিপ্টগুলি ইনস্টল করা (নতুন ইনস্টল বা আপগ্রেড) ব্যতীত এবং আমরা স্ক্রিপ্টের প্রয়োগের সময় ও তারিখ এবং সময় লগড করা ছাড়াও আমরা অনুরূপ একটি বিষয়ে কাজ করছি।
si618

আমিও প্রায় ঠিক এর মতো কিছু লিখেছি, তবে জেটের (যেমন এমএস অ্যাক্সেস) ডেটাবাসের জন্য। আমরা বর্তমানে এসকিউএল সার্ভারের জন্য ডিবি ঘোস্ট ব্যবহার করছি, এটি আপনার জন্য অনেক কিছু করে।
কেনি এভিট

আপনি প্রতিস্থাপন করতে পারেন begin transaction; ... end transaction;ক্ষণস্থায়ী সঙ্গে --single-transactionকরতে psql
ভ্লাদিমির

18

হ্যাঁ. কোড কোড। আমার থাম্বের নিয়মটি হ'ল আমার কোনও উন্নয়ন বা উত্পাদন মেশিনের দিকে না তাকিয়ে স্ক্র্যাচ থেকে অ্যাপ্লিকেশনটি তৈরি এবং মোতায়েন করতে সক্ষম হওয়া দরকার ।


13

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

আমি বিশ্বাস করি এটি NaNt / CruiseControl এর মাধ্যমে করা হয়েছিল।


11

হ্যাঁ, আমি মনে করি আপনার ডাটাবেসটি সংস্করণ করা গুরুত্বপূর্ণ। ডেটা নয়, তবে নির্দিষ্ট জন্য স্কিমা।

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

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


8

ভিজ্যুয়াল স্টুডিওতে নতুন ডাটাবেস প্রকল্পগুলি সোর্স নিয়ন্ত্রণ এবং পরিবর্তন স্ক্রিপ্ট সরবরাহ করে।

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

DB স্কিমাটি "shredded" অনেকগুলি, অনেক ছোট .sql ফাইল তৈরি করতে হয়, প্রতি ডিডিএল কমান্ড যা ডিবি বর্ণনা করে।

+ + টম


অতিরিক্ত তথ্য 2008-11-30

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

কারণ স্কিমাটি স্কেল ফাইলগুলিতে "কাটা" হয়েছে সোর্স নিয়ন্ত্রণটি ভাল কাজ করে।

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

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

ডিবি প্রকল্পগুলি একটি খুব শক্তিশালী সরঞ্জাম। তারা কেবল স্ক্রিপ্ট তৈরি করে না তবে তাৎক্ষণিকভাবে সেগুলি প্রয়োগ করতে পারে। এটির সাথে আপনার প্রোডাকশন ডিবি নষ্ট করবেন না তা নিশ্চিত হন। ;)

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

+ + টম


8

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

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

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

আপনি আরও তথ্যের জন্য এই নিবন্ধটি পড়তে পারেন: http://solutioncenter.apexsql.com/sql-source-control-reduce-datedia-de વિકાસment-time/


6

আমি তৈরি / আপডেট স্ক্রিপ্টগুলি এবং স্যাম্প্লেডেটা তৈরি করে এমন স্ক্রিপ্ট সংরক্ষণ করে করি।


6

হ্যাঁ, আমরা আমাদের এসকিউএলকে আমাদের বিল্ডের অংশ হিসাবে রেখে তা করি - আমরা DROP.sql, CREATE.sQL, USERS.sql, VALUES.sQL এবং সংস্করণ এগুলি নিয়ন্ত্রণ করি, যাতে আমরা কোনও ট্যাগ হওয়া সংস্করণে ফিরে যেতে পারি।

আমাদের পিপীলিকার কাজও রয়েছে যা যখনই প্রয়োজন হয় ডিবিটিকে পুনরায় তৈরি করতে পারে।

এছাড়াও, এসকিউএল এর পরে আপনার উত্স কোডের সাথে ট্যাগ হয়।


6

আমি কোন প্রকল্পে সবচেয়ে সফল স্কিমটি ব্যাকআপ এবং ডিফেরেনশিয়াল এসকিউএল ফাইলগুলির সমন্বিত করেছি। মূলত আমরা প্রতিটি রিলিজের পরে আমাদের ডিবি একটি ব্যাকআপ নেব এবং একটি এসকিউএল ডাম্প করব যাতে আমাদেরও যদি প্রয়োজন হয় তবে স্ক্র্যাচ থেকে ফাঁকা স্কিমা তৈরি করতে পারি। তারপরে যে কোনও সময় আপনাকে ডিবিতে পরিবর্তন আনতে হবে সংস্করণ নিয়ন্ত্রণের অধীনে এসকিএল ডিরেক্টরিতে একটি পরিবর্তন স্ক্রিপ্ট যুক্ত করতে হবে। আমরা সবসময় ফাইলের নামের সাথে একটি ক্রম সংখ্যা বা তারিখ উপসর্গ করতাম তাই প্রথম পরিবর্তনটি 01_add_created_on_column.sql এর মতো কিছু হবে এবং পরবর্তী স্ক্রিপ্টটি হবে 02_added_customers_index। আমাদের সিআই মেশিনগুলি এগুলির জন্য পরীক্ষা করবে এবং ব্যাকআপ থেকে পুনরুদ্ধার করা ডিবিটির একটি নতুন কপিতে ক্রমানুসারে চালাবে।

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


6

আমরা উত্সটি আমাদের সমস্ত ডেটাবেস তৈরি করা অবজেক্টগুলিকে নিয়ন্ত্রণ করি। এবং কেবল বিকাশকারীদের সৎ রাখার জন্য (কারণ আপনি উত্স নিয়ন্ত্রণে না থাকাতে আপনি বস্তুগুলি তৈরি করতে পারেন), আমাদের dbas পর্যায়ক্রমে উত্স নিয়ন্ত্রণে না থাকা এমন কোনও কিছুর সন্ধান করে এবং যদি তারা কিছু খুঁজে পায় তবে তারা ঠিক আছে কিনা জিজ্ঞাসা না করে এটিকে ফেলে দেয়।


5

আমি আমার সমস্ত ডাটাবেস স্কিমা পরিবর্তনগুলি সংস্করণে স্কিম্যাঙ্ক ব্যবহার করি :

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

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

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

সংস্করণ নিয়ন্ত্রণ এন পরিবর্তন পরিচালনার সাথে একটি সুন্দর ঝরঝরে ওয়েব-ভিত্তিক স্কিমা ডিজাইন সরঞ্জাম।


4

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


4

আমি প্রতিটি পরিবর্তন করার জন্য সাধারণত একটি এসকিউএল স্ক্রিপ্ট তৈরি করি এবং সেই পরিবর্তনগুলি প্রত্যাহার করার জন্য আরেকটি এবং স্ক্রিপ্টগুলি সংস্করণ নিয়ন্ত্রণে রাখি।

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

হ্যাঁ, আপনি বলার আগে, এটি রেলস এবং অন্যদের স্টাফগুলির সাথে খুব একই রকম, তবে এটি বেশ ভালভাবে কাজ করছে বলে মনে হচ্ছে, তাই আমি নির্লজ্জভাবে ধারণাটি তুলেছি তা স্বীকার করতে আমার কোনও সমস্যা নেই :)


4

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

৩.- এসকিউএল অলটার স্ক্রিপ্ট রফতানি করুন সাধারণত আপনাকে এখনই হাতের কাছে ALTER TABLE বিবৃতি লিখতে হবে, আপনি মডেলটিতে আপনার পরিবর্তনগুলি প্রতিফলিত করছেন। তবে আপনি স্মার্ট হতে পারেন এবং ওয়ার্কবেঞ্চকে আপনার জন্য কঠোর পরিশ্রম করতে দিন। প্রধান মেনু থেকে কেবল ফাইল -> রফতানি -> ফরোয়ার্ড ইঞ্জিনিয়ার এসকিউএল আল্টর স্ক্রিপ্ট ... নির্বাচন করুন।

এটি আপনাকে বর্তমান মডেলটির সাথে তুলনা করা উচিত SQL ক্রিয়েট ফাইল নির্দিষ্ট করতে অনুরোধ করবে।

পদক্ষেপ ১ থেকে এসকিউএল তৈরি করুন স্ক্রিপ্টটি নির্বাচন করুন The সরঞ্জামটি আপনার জন্য পরিবর্তিত টেবিল স্ক্রিপ্ট তৈরি করবে এবং আপনি আপডেট করতে এই স্ক্রিপ্টটি আপনার ডাটাবেসের বিরুদ্ধে চালিয়ে দিতে পারেন।

আপনি মাইএসকিউএল ক্যোয়ারী ব্রাউজার বা মাইএসকিএল ক্লায়েন্ট ব্যবহার করে এটি করতে পারেন o ভয়েলা! আপনার মডেল এবং ডাটাবেস এখন সিঙ্ক্রোনাইজ করা হয়েছে!

উত্স: মাইএসকিউএল ওয়ার্কবেঞ্চ সম্প্রদায় সংস্করণ: স্কিমা সিঙ্ক্রোনাইজেশনের গাইড

অবশ্যই এই সমস্ত স্ক্রিপ্টগুলি সংস্করণ নিয়ন্ত্রণের মধ্যে রয়েছে।


4

হ্যাঁ সবসময়. যখনই প্রয়োজন হবে আপনার নমুনা ডেটার একটি দরকারী সেট দিয়ে আপনার উত্পাদন ডেটাবেস কাঠামোটি পুনরায় তৈরি করতে সক্ষম হওয়া উচিত। যদি আপনি তা না করেন, সময়ের সাথে সাথে চলমান জিনিসগুলি ভুল রাখতে ভুলে যান তবে একদিন আপনি কামড়ান, বড় সময়। এটির বীমা যা আপনি নিজের প্রয়োজনের কথা ভাবেন না তবে যে দিন আপনি এটিটি 10 ​​বার মূল্য দিয়ে মূল্য দেবেন!


4

ডাটাবেস মডেলটি সম্পর্কে নিজেই অনেক আলোচনা হয়েছে তবে আমরা প্রয়োজনীয় ডেটা। এসকিউএল ফাইলগুলিতে রাখি।

উদাহরণস্বরূপ, দরকারী হওয়ার জন্য আপনার অ্যাপ্লিকেশনটির এটি ইনস্টলে প্রয়োজন হতে পারে:

INSERT INTO Currency (CurrencyCode, CurrencyName) 
VALUES ('AUD', 'Australian Dollars');

INSERT INTO Currency (CurrencyCode, CurrencyName) 
VALUES ('USD', 'US Dollars');

আমরা একটি ফাইল currency.sqlsubversion অধীন কল হবে। বিল্ড প্রক্রিয়াটির একটি ম্যানুয়াল পদক্ষেপ হিসাবে, আমরা আগের মুদ্রা.এসকিউএলকে সর্বশেষতমটির সাথে তুলনা করি এবং একটি আপগ্রেড স্ক্রিপ্ট লিখি।


আমরা একটি ডেটাবেজে প্রয়োজনীয় ডেটা রাখি (কে থাঙ্ক হবে?), তারপরে আমাদের সরঞ্জামগুলি ব্যবহার করে এই সন্নিবেশ / আপডেট স্ক্রিপ্টগুলি তৈরি করতে ডেভ, ক্যু, উত্পাদন ইত্যাদির মধ্যে রেফারেন্স ডেটা সিঙ্কে রাখার জন্য এটি পরিচালনা করা এত সহজ the তথ্য এবং পরিবর্তন এইভাবে। স্ক্রিপ্টগুলি সমস্ত আমাদের সংস্করণ / কনফিগার সরঞ্জাম দ্বারা নিয়ন্ত্রণ করা হয়।
ক্যারেন লোপেজ

যখন আপনার ডাটাবেসে অনেক মিলিয়ন সারি থাকে তখন কি এটি ব্যবহারিক?
রনি

4

আমরা আমাদের ডাটাবেসগুলির চারপাশের সমস্ত কিছু সংস্করণ এবং উত্স নিয়ন্ত্রণ করি:

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

আমরা চেঞ্জ ম্যানেজার এবং কিছু কাস্টম স্ক্রিপ্ট ব্যবহার করে স্বয়ংক্রিয় কাজগুলি দিয়ে এটি করি। আমাদের চেঞ্জ ম্যানেজারের এই পরিবর্তনগুলি নিরীক্ষণ করা হয় এবং সেগুলি করা হয় কখন তা অবহিত করে।


4

আমি বিশ্বাস করি যে প্রতিটি ডিবি উত্স নিয়ন্ত্রণে থাকা উচিত, এবং বিকাশকারীদের তাদের স্থানীয় ডেটাবেস স্ক্র্যাচ থেকে তৈরি করার সহজ উপায় থাকা উচিত। ডেটাবেস পেশাদারদের জন্য ভিজ্যুয়াল স্টুডিও দ্বারা অনুপ্রাণিত হয়ে, আমি একটি ওপেন-সোর্স সরঞ্জাম তৈরি করেছি যা এমএস এসকিউএল ডাটাবেসগুলি স্ক্রিপ্ট করে, এবং সেগুলি আপনার স্থানীয় ডিবি ইঞ্জিনে স্থাপনের এবং সহজ উপায় সরবরাহ করে। ব্যবহার করে দেখুন http://dbsourcetools.codeplex.com/ । মজা করুন, - নাথান।


4

যদি আপনার ডেটাবেসটি এসকিউএল সার্ভার হয় তবে আমাদের সন্ধান করতে পারেন কেবল সমাধান। এসকিউএল সোর্স কন্ট্রোল 1.0 এখন প্রকাশিত হয়েছে।

http://www.red-gate.com/products/SQL_Source_Control/index.htm

এটি এসএসএমএসে সংহত করে এবং আপনার ডাটাবেস অবজেক্ট এবং আপনার ভিসিএসের মধ্যে আঠালো সরবরাহ করে। 'স্ক্রিপ্টিং আউট' স্বচ্ছভাবে ঘটে (এটি হুডের অধীনে এসকিউএল তুলনা ইঞ্জিনটি ব্যবহার করে), এটি ব্যবহারের পক্ষে এটি এত সহজ হওয়া উচিত যে বিকাশকারীরা প্রক্রিয়াটি গ্রহণ করা থেকে নিরুৎসাহিত হবে না।

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


আমি কারও কাছে রেড-গেটের পণ্য সুপারিশ করব না। আমি কিছু সময়ের জন্য এসকিউএল উত্স নিয়ন্ত্রণ 2.2 ব্যবহার করছি। আসলে শীঘ্রই তারা সংস্করণ 3 প্রকাশ করেছে তার পরে তারা 2.2 এর জন্য কোনও সমর্থন শেষ করেছে। এমনকি তারা কোনও ত্রুটি স্থির করে নি (যা আমি নতুন বৈশিষ্ট্যগুলি বিবেচনা করি না - বাগগুলি বাগ হিসাবে চিহ্নিত করা হয়), এটি প্রকাশ করার সময় তারা টিএফএস2012 এর জন্য সমর্থনও অন্তর্ভুক্ত করেনি। আমার সংস্থা টিএফএস2010 থেকে টিএফএস ২০১২ তে স্যুইচ করেছে, এবং আমরা আর টিএফএসের সাথে সংযোগ করতে পারিনি। আমাদের আক্ষরিকভাবে রেড গেটের সফ্টওয়্যারটি ফেলে দিতে হয়েছিল, কারণ তারা আমাদের যে একমাত্র বিকল্প দিয়েছিল তা হ'ল তাদের সফ্টওয়্যারটির নতুন সংস্করণ কেনা। ভার আপডেট করার কোনও পরিকল্পনা নেই। 2.2।
ডিমা

আশা করি নন-মাইক্রোসফ্ট অপারেটিং সিস্টেমগুলির জন্য তাদের সিএলআই সমর্থন রয়েছে।
l8nite

দেখে মনে হচ্ছে তাদের কাছে মাইএসকিউএল red-gate.com/products/mysql/mysql-compistance-bundle- এর
জেফ

3

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


3

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

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


3

আমরা সমস্ত ডাটাবেস উত্স নিয়ন্ত্রণে সরানোর প্রক্রিয়াতে রয়েছি। আমরা ডেটাবেস (স্ক্রিপ্ট সংস্করণ বৈশিষ্ট্য, দুর্ভাগ্যবশত) স্ক্রিপ্ট আউট করতে sqlcompare ব্যবহার করছি এবং ফলাফল SVN এ রাখছি।

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

আপনার জন্য শুভকামনা, যত তাড়াতাড়ি আপনি চেষ্টা করে দেখুন আপনার সমস্যাগুলি দ্রুত সমাধান করা হবে orted


3

আমি থট ওয়ার্কস থেকে ডিডিডিপ্লয় টুলটি http://dbdeploy.com/ এ ব্যবহার করেছি । এটি মাইগ্রেশন স্ক্রিপ্টগুলির ব্যবহারকে উত্সাহ দেয়। প্রতিটি প্রকাশ, আমরা পরিবর্তন স্ক্রিপ্টগুলি একক ফাইলে একীভূত করে বুঝতে সহজ করতে এবং ডিবিএগুলিকে পরিবর্তনের 'আশীর্বাদ' করতে দিতে।


3

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

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

একটি দুর্দান্ত সরঞ্জাম। লিঙ্কটি এখানে: http://www.sqldelta.com/


3

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

রেডগেট ডেটা স্ন্যাপশটগুলিও তৈরি করে, যখন আমি ব্যক্তিগতভাবে তাদের সাথে কাজ করি নি, তারা ঠিক ততটাই শক্তিশালী।


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

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