ডাটাবেস সংস্করণ নিয়ন্ত্রণ এবং স্থাপনার সমাধান?


11

বর্তমানে আমি একটি ডাম্প স্ক্রিপ্ট ব্যবহার করি এবং গিট রেপোতে ডাটাবেস প্রতিশ্রুতিবদ্ধ। --skip-extended-insert --skip-comments --skip-dump-dateএর অর্থ হ'ল কোনও ডিফ আমাকে কী বদলেছে তার সম্পর্কে ন্যায্য ধারণা দিতে পারে, তবে আমি একত্রীকরণের চেষ্টা করলে এটি সমস্ত হ্রাস পায়।

ডাব্লুপিএসআইটিআইআরএল, ডাব্লুপিহোম এবং অন্যান্য সমস্ত জায়গাগুলিতে ওয়ার্ডপ্রেস স্টোরের সম্পূর্ণ ইউআরএলগুলি অন্য হোস্টে আমদানি করার সময় আপডেট করার প্রয়োজন হয় (পরীক্ষা, স্টেজিং, উত্পাদন)

কেউ কি আরও ভাল পদ্ধতি ব্যবহার করছেন?

প্রধান সমস্যা:

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

এমন একটি প্রক্রিয়া যা টাইমস্ট্যাম্পড মাইগ্রেশন তৈরি করেছিল, কেবলমাত্র যুক্ত করা বা সরানো জিনিসগুলিই আদর্শ হবে ... তবে আমি নিশ্চিত না যে এটি এমনকি সম্ভব কিনা?


আপনি কি সমস্ত ডেটা পরিবর্তন বা কেবল কাঠামোর পরিবর্তনগুলিই সংস্করণ করতে চান ? এবং এটিই কি আপনার আসল ব্যবসায়িক কাজ?
অলস ব্যাজার

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

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

উত্তর:


4

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

dbv.php

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

এটি একটি পিএইচপি ওয়েব ইন্টারফেসের মাধ্যমে ব্যবহৃত হয়।

DBVC

পূর্ববর্তী সরঞ্জামের মত মৌলিকভাবে একই, এটি একটি কমান্ড লাইন ইন্টারফেসের উপর ভিত্তি করে। এটি একটি জসন ফাইলের মাধ্যমে কনফিগার করা হয়েছে। মূল পার্থক্য হ'ল এটি মাইগ্রেশন ফাইলগুলি স্বয়ংক্রিয়ভাবে উত্পন্ন করে না।

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

ওয়ার্ডপ্রেস প্লাগইন

কিছু প্লাগইন যা পুনরাবৃত্তিযোগ্য কর্মপ্রবাহ তৈরিতে সহায়তা করতে পারে:


ডিবিভিসি দেখতে আমি যে ধরণের সরঞ্জামটি সন্ধান করেছি like ধন্যবাদ!
জ্যাকব Dorman

1
আমি আনন্দিত এটি সাহায্য করেছে। আমি সবেমাত্র একটি আকর্ষণীয় সরঞ্জাম পেয়েছি, এটি কিছুক্ষণের মধ্যে আপডেট করা হয়নি তবে এটির জন্য একটি লুট নেওয়া ভাল: github.com/idler/MMP
গার্সিয়া

ডিবিভিসির সাথে জ্যাকবডোরম্যান, আপনি কি বিভিন্ন পরিবেশ থেকে সফলভাবে ডিবি পরিবর্তনগুলি মার্জ করতে সক্ষম? আমি আমার নিজের একটি কৌশল তৈরি করেছি , তবে কি ডিবিভিসি আপডেট ফাইলগুলি তৈরি করে বা এসকিউএল ডাম্পগুলির মধ্যে আপনার কি মাইএসকিলডিফ জাতীয় কিছু ব্যবহার করতে হবে ? আমি এই সরঞ্জামটিকে কার্যকর হিসাবে চিত্রিত করতে পারি না যদি না এটি এসকিউএল পার্থক্যগুলি তুলনামূলকভাবে তৈরি করতে সহায়তা করে, বিশেষত পৃথক লাইনে ইনসার্ট স্টেটমেন্ট প্যারামিটারগুলি ... যদিও আমি মনে করি যে কোনও ফাইলই এটির সাথে সম্পাদনা করতে পারে ...
স্পেনসার উইলিয়ামস

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

@ ভিক্টর আমি এমএমপি চেক আউট করেছি। এটি স্কিমা পরিবর্তন করে, তবে ডেটা পৃথক করে / সন্নিবেশ করে না।
ডেভিড সিলভা স্মিথ

2

আমি এটি MYSQL এ করছি।

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

এই থ্রেডের অন্যান্য বেশিরভাগ সমাধানের মতো নয় এই সমাধানটি ডেটা পায় যা কোনও সিএমএসের জন্য গুরুত্বপূর্ণ।

এই সমাধানটি কোনও সরঞ্জাম ব্যবহার করে না, কেবল একটি কমান্ড লাইন স্ক্রিপ্ট।

সম্পাদনা: আমি দেখতে পেয়েছি যে আমার পুরানো কোডটিতে একটি বাগ রয়েছে যেখানে আমদানি ক্রমটি গুরুত্বপূর্ণ। নির্মোচন --compactপতাকা ত্রুটি সমাধান।

for x in `mysql --skip-column-names -u root -ppassword dbname -e 'show tables;'`; do
     echo exporting $x
     mysqldump -u root -ppassword --skip-add-drop-table --skip-add-locks --skip-disable-keys --skip-set-charset --extended-insert=FALSE --replace --skip-dump-date dbname $x > "./db/$x.sql"
done

পুরানো কোড

for x in `mysql --skip-column-names -u root -ppassword dbname -e 'show tables;'`; do
     mysqldump -u root -ppassword --compact --extended-insert=FALSE --replace dbname $x > "./db/$x.sql"
done

এবং এখানে আমদানি করতে হয়

for x in `ls ./db/*.sql`; do
     echo importing $x
     mysql -pdbpassword dbname --force < $x
done
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.