মাইএসকিলডাম্প কি ট্রিগার এবং পদ্ধতিগুলি ডাম্প করতে পারে?


10

কোনও মাইএসকিএলডাম তৈরির কোনও উপায় আছে যা একটি নির্দিষ্ট ডিবি থেকে সমস্ত ট্রিগার এবং পদ্ধতিগুলি সংরক্ষণ করবে?

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

উত্তর:


9

আমি সাধারণত তাদের যে টেবিলগুলির জন্য নির্দিষ্ট করেছিলাম সেগুলি থেকে ট্রিগারগুলি আলাদা করি না। আমি এই মত ডাম্প:

mysqldump -u... -p... --no-data --routines --triggers dbname > DBSchema.sql

রুটিন এবং ট্রিগারগুলির উপস্থিতির জন্য এটি পরীক্ষা করুন:

SELECT COUNT(1) FROM mysql.proc;

SELECT COUNT(1) FROM information_schema.triggers;

SELECT * FROM information_schema.triggers\G

আপনি যদি মাইএসকিউএল ইনস্ট্যান্সের সমস্ত ডিবিতে এটি করতে চান তবে এটি করুন:

mysql -u... -p... -A -N -e"SELECT schema_name FROM information_schema.schemata WHERE schema_name NOT IN ('information_schema','mysql')" > /tmp/dblist.txt
for DB in `cat /tmp/dblist.txt`
do
    mysqldump -u... -p... --no-data --no-create-info --routines dbname > ${DB}-routines.sql
    mysqldump -u... -p... --no-data --triggers dbname > ${DB}-schema-triggers.sql
done

এইভাবে, সঞ্চিত পদ্ধতিগুলি ডিবি-র জন্য একটি রুটিন ডাম্পে চলে যায়, যখন স্কিমা এবং ট্রিগারগুলি অন্য একটি ডাম্পে যায়।


ট্রিগার / পদ্ধতিগুলি কীভাবে ডাম্প করা যায় সে সম্পর্কে @ ডোল রোল্যান্ডোর অধিকার। যদি আপনি দেখতে চান যে এগুলি স্কয়ার ফাইলটিতে রয়েছে কিনা, এটি খুলুন এবং 'ক্রিয়েট ট্রিগার' কলগুলি অনুসন্ধান করুন। যদি * নিক্সে থাকেgrep 'CREATE TRIGGER'
ডেরেক ডোনাই

@ রোল্যান্ডোমাইএসকিউএলডিবিএ, --triggersডিফল্টরূপে ফেলে দেওয়া হয় না ? --no-data --routines --triggersবনাম মধ্যে পার্থক্য কি হবে --no-data --routines?
পেসারিয়ার 14

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

@ রোল্যান্ডোমাইএসকিউএলডিবিএ - এ-এন কী করবে?
মন্টিপাইথন

আমি ড্রপ ট্রিগার স্টেটমেন্টগুলিকে প্রিপেন্ড করতে নিয়মিত এক্সপ্রেশন ব্যবহার করেছি: এটিকে প্রতিস্থাপন করুন: (\ / * \! 50003 তৈরি করুন * \ / \ / * \! 50017 ডিফাইনার \ = কিছু_পেক্স_এখানে * \ / \ / * \! 50003 ট্রিগার (। *?) ) এর সাথে: ড্রপ ট্রিগার / *! 50032 যদি উপস্থিত থাকে * / $2;; \ n $ 1
আলেকজান্দ্রু
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.