Yoyo-הגירה היא כלי הגירת סכימת מסד נתונים באמצעות SQL רגיל וDB-API.
מה YoYo-הגירות עושה?
כיישומי מסדי נתונים להתפתח, שינויים בסכימת מסד נתונים נדרשים לעתים קרובות. אלה בדרך כלל יכולים להיות כפי שנכתבו סקריפטים של SQL חד פעמי המכילים צור / ALTER הצהרות שולחן (למרות שכל תסריט SQL או פיתון ניתן להשתמש בyoyo-הגירה).
Yoyo-הגירות מספקת כלי שורת הפקודה לקריאת ספרייה של תסריטים כאלה וליישם אותם למסד הנתונים שלך כנדרש.
תמיכה Database
מסדי נתונים PostgreSQL, MySQL וSQLite נתמכים.
שימוש
Yoyo-הגירות בדרך כלל מופעלת כתסריט שורת הפקודה.
דוגמאות:
קרא את כל ההגירות מהגירות ספרייה ולהחיל אותם על בסיס הנתונים PostgreSQL:
yoyo-להגר להחיל ./migrations/ postgres: // משתמש: @ localhost / מסד נתונים סיסמא
הגירות Rollback הוחלו בעבר על בסיס הנתונים MySQL:
yoyo-להגר ./migrations/ mysql החזרה: // משתמש: @ localhost / מסד נתונים סיסמא
החל מחדש (כלומר החזרה לאחר מכן להחיל שוב) הגירה למסד נתוני SQLite ב/home/sheila/important-data.db מיקום:
yoyo-להעביר SQLite להחיל מחדש ./migrations/: ////home/sheila/important-data.db
כברירת מחדל, yoyo-הגירות מתחילה במצב אינטראקטיבי, מה שגרם לך לכל קובץ הגירה לפני היישום זה, ולכן קל לבחור אילו הגירה לחול וחזרה.
הגירות הספרייה צריכה להכיל שורה של תסריטי הגירה. כל תסריט הגירה הוא קובץ פיתון (.py) המכיל שורה של צעדים. כל צעד צריך להוות שאילתא הגירה ו( אופציונלית) שאילתא החזרה. למשל:
#
# קובץ: הגירה / 0001.create-foo.py
#
צעד (
& Nbsp; "ליצור foo לוח (INT id, בר varchar (20), מפתח הראשי (id))",
& Nbsp; "foo לוח DROP",
)
שם הקובץ של כל קובץ (בלי סיומת .py) משמש כמזהה עבור כל הגירה. הגירות מוחלות על מנת שם הקובץ, כך שזה שימושי לשם את הקבצים שלך באמצעות תאריך (לדוגמא: '20090115-xyz.py') או עם עוד מספר הגדלה.
yoyo-להגר יוצר טבלה במסד הנתונים של היעד, _yoyo_migration שלך, כדי לעקוב אחר שהגירות יושמו.
צעדים יכולים גם לקחת ignore_errors טיעון אופציונאלי, שחייבת להיות אחד מלהחיל, החזרה, או כל. אם בדוגמא הקודמת foo השולחן עשוי כבר נוצרה בדרך אחרת, היינו יכולים להוסיף ignore_errors = 'חלים' לצעד כדי לאפשר ההגירה להמשיך ללא קשר:
#
# קובץ: 0001.create-foo.py
#
צעד (
& Nbsp; "ליצור foo לוח (INT id, בר varchar (20), מפתח הראשי (id))",
& Nbsp; "foo לוח DROP",
& Nbsp; ignore_errors = 'חל',
)
צעדים יכולים להיות גם אובייקטי callable פיתון שייקחו חיבור מסד נתונים כטענה היחידה שלהם. למשל:
#
# קובץ: 0002.update_keys.py
#
do_step def (קונטיקט):
& Nbsp; סמן = conn.cursor ()
& Nbsp; cursor.execute (
& Nbsp; "INSERT INTO SysInfo"
& Nbsp; "(osname, מארח, שחרור, גרסה, קשת)"
& Nbsp; "ערכים (% s,% s,% s,% s,% s% s)",
& Nbsp; os.uname ()
& Nbsp;)
צעד (do_step)
אבטחה סיסמא
אתה בדרך כלל לציין את שם המשתמש של מסד הנתונים ואת הסיסמה שלך כחלק מחיבור נתוני המחרוזת בשורת הפקודה. על מכונה מרובה משתמשים, משתמשים אחרים יכולים להציג את סיסמת מסד הנתונים שלך ברשימת התהליך.
דגל -p או --prompt-סיסמא גורם yoyo-להגר להנחיה להזנת סיסמא, מתעלמת מכל סיסמא שצוינה במחרוזת החיבור. סיסמא זו לא תהיה זמינה למשתמשים אחרים באמצעות רשימת התהליך של המערכת.
מטמון מחרוזת חיבור
הפעם הראשונה שתפעיל yoyo-נודדים על סט חדש של הגירה, אתה תישאל אם ברצונך להעבירו למטמון מחרוזת חיבור למסד נתונים בקובץ שנקרא .yoyo-נודדים בספריית ההגירה.
מטמון זה הוא מקומי לספריית ההגירה, כך הריצות הבאות באותה קבוצת ההגירה לא צריך חיבור נתוני המחרוזת שתפורט.
זה חוסך הקלדה, ימנע את שם המשתמש של מסד הנתונים שלך ומראה את הסיסמה ברישומי תהליך ומפחית את הסיכון של הפעלה בטעות yoyo-נודדים על מסד הנתונים הלא נכונים (כלומר על ידי מחדש ריצת כניסת yoyo-להעביר קודם לכן בהיסטוריה פקודתך כאשר יש לך עבר ל ספרייה אחרת).
אם אתה לא רוצה קובץ מטמון זה, שישמש, להוסיף את פרמטר --no-מטמון לאפשרויות שורת הפקודה
מה חדש במהדורה זו:.
- לשחרור כושל 4.2.3
מה חדש בגרסת 4.2.1:
- תיקון באג לשחרור קודם, שהושמט קבצים קריטיים.
מה חדש בגרסת 4.1.6:
- תמיכת חלונות נוסף (תודה לפיטר Shinners)
מה חדש בגרסת 4.1.5 :
- קביעת תצורה של מטפלים בכניסה, כך שסיבות מתג -v הפלט ללכת לקונסולה (הודות לאנדרו Nelis).
מה חדש בגרסת 4.1.3:
- שם טבלת הגירה
ברירת מחדל השתנה בחזרה ל'_yoyo_migration '
דרישות :
- Python
תגובות לא נמצא