זוהי הפקודה mysql-schema-diffp שניתן להריץ בספק האירוח החינמי של OnWorks באמצעות אחת מתחנות העבודה המקוונות החינמיות שלנו כגון Ubuntu Online, Fedora Online, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS.
תָכְנִית:
שֵׁם
mysql-schema-diff - השווה סכמות מסד נתונים של MySQL
תַקצִיר
mysql-schema-diff [B] ] ב ב'
mysql-schema-diff --help
תיאור
mysql-schema-diff הוא קצה קדמי של סקריפט Perl ל-CPANhttp://www.perl.com/CPANמודול
MySQL::Diffhttp://search.cpan.org/search?module=MySQL::Diff> אשר משווה את הנתונים
מבנים (כלומר הגדרות סכמה/טבלה) של שני MySQLhttp://www.mysql.com/>
מסדי נתונים, ומחזירה את ההבדלים כרצף של פקודות MySQL המתאימות ל-piping
אל תוך MySQL אשר ישנה את מבנה מסד הנתונים הראשון כך שיהיה זהה ל
זה של השני (ראה הבדל ו תיקון).
ניתן להשוות מבני מסדי נתונים בין אם מדובר בקבצים המכילים הגדרות טבלה או
מסדי נתונים קיימים, מקומיים או מרוחקים.
נ.ב. התוכנית יוצרת לא לנסות להשוות כל אחד מהנתונים שעשויים להיות מאוחסנים ב-
מסדי נתונים. זה אך ורק לצורך השוואה בין הגדרות הטבלה. אין לי תוכניות לעשות זאת
ליישם השוואת נתונים; זוהי בעיה מורכבת ואין לי צורך בכך
פונקציונליות בכל מקרה. עם זאת, ישנה תוכנה נוספת שנקראת coldiff
<http://rossbeyer.net/software/mysql_coldiff/> שעושה זאת, ומבוסס על מידע ישן יותר
תוכנית הנקראת הבדל נתונים אשר כנראה נעלם מהרשת.
עבור PostgreSQL ישנם כלים דומים כמו pgdiffhttp://pgdiff.sourceforge.net/> ו
apgdiffhttp://apgdiff.startnet.biz/>.
דוגמאות
# השווה הגדרות טבלה בשני קבצים
mysql-schema-diff db1.mysql db2.mysql
# השווה הגדרות טבלה בקובץ 'db1.mysql' עם מסד נתונים 'db2'
mysql-schema-diff db1.mysql db2
# שדרוג אינטראקטיבי של הסכימה של מסד הנתונים 'db1' כך שתהיה כמו ה-
# סכימה המתוארת בקובץ 'db2.mysql'
mysql-schema-diff -A db1 db2.mysql
# השווה הגדרות טבלה בשני מסדי נתונים במחשב מרוחק
mysql-schema-diff --host=remote.host.com --user=החשבון שלי db1 db2
# השווה הגדרות טבלה במסד נתונים מקומי 'foo' עם a
# 'סרגל' מסד נתונים במחשב מרוחק, כאשר קובץ foo כבר
# קיים בספרייה הנוכחית
mysql-schema-diff --host2=remote.host.com --password=secret מסד נתונים:foo bar
אפשרויות
פרטים נוספים בהמשך; לעת עתה הפעל את "mysql-schema-diff --help".
פנימיות
עבור שני מבני מסד הנתונים המושווים, קורה הדבר הבא:
אם הארגומנט הוא שם קובץ תקין, הקובץ משמש ליצירת מסד נתונים זמני
שעליו מופעל הפונקציה "mysqldump -d" כדי לקבל את הגדרות הטבלה בצורה קנונית.
לאחר מכן מסד הנתונים הזמני מוסר. (מסד הנתונים הזמני נקרא
"test_mysqldiff_temp_something" מכיוון שהרשאות ברירת מחדל של MySQL מאפשרות לכל אחד
צור מסדי נתונים המתחילים בקידומת "test_".)
אם הארגומנט הוא מסד נתונים, הפקודה "mysqldump -d" תרוץ ישירות עליו.
· כאשר נדרש אימות, שם המארח, שם המשתמש והסיסמה שניתנו על ידי
נעשה שימוש באפשרויות המתאימות (הקלד "mysql-schema-diff --help" למידע נוסף).
· כל קבוצה של הגדרות טבלה מנותחת כעת לטבלאות, לשדות ולמפתחות אינדקס
בתוך טבלאות אלה; אלה מושווים, וההבדלים מוצגים בצורה של
משפטי MySQL.
השתמש ב- mysql-schema-diffp באופן מקוון באמצעות שירותי onworks.net