מסמך זה תורגם על ידי בינה מלאכותית. לכל אי דיוק, אנא עיין בגרסה האנגלית
במהלך פיתוח ועדכון תוספים ב-NocoBase, ייתכנו שינויים שאינם תואמים במבנה מסד הנתונים או בתצורת התוסף. כדי להבטיח שדרוגים חלקים, NocoBase מספקת מנגנון Migration המאפשר לטפל בשינויים אלה באמצעות כתיבת קבצי migration. מדריך זה יסייע לכם להבין באופן שיטתי את אופן השימוש ב-Migration ואת תהליך העבודה לפיתוחו.
Migration הוא סקריפט המופעל באופן אוטומטי במהלך שדרוגי תוספים, ומשמש לפתרון הבעיות הבאות:
זמני ההפעלה של Migration מחולקים לשלושה סוגים:
| סוג | מועד הפעלה | תרחיש הפעלה |
|---|---|---|
beforeLoad | לפני טעינת כל תצורות התוספים | |
afterSync | לאחר סנכרון תצורות האוספים עם מסד הנתונים (מבנה האוסף כבר השתנה) | |
afterLoad | לאחר טעינת כל תצורות התוספים |
קבצי Migration צריכים להיות ממוקמים בנתיב src/server/migrations/*.ts שבספריית התוסף. NocoBase מספקת את הפקודה create-migration ליצירה מהירה של קבצי migration.
פרמטרים אופציונליים
| פרמטר | תיאור |
|---|---|
--pkg <pkg> | מציין את שם חבילת התוסף |
--on [on] | מציין את מועד ההפעלה, אפשרויות: beforeLoad、afterSync、afterLoad |
דוגמה
נתיב קובץ ה-migration שנוצר הוא כדלקמן:
תוכן הקובץ הראשוני:
⚠️
appVersionמשמש לזיהוי הגרסה שאליה מיועד השדרוג. סביבות עם גרסאות נמוכות מהגרסה שצוינה יפעילו את ה-migration הזה.
בקבצי Migration, תוכלו לגשת למאפיינים ולממשקי API הנפוצים הבאים באמצעות this, כדי לתפעל בקלות את מסד הנתונים, התוספים ומופעי היישום:
מאפיינים נפוצים
this.app
מופע היישום הנוכחי של NocoBase. ניתן להשתמש בו לגישה לשירותים גלובליים, תוספים או תצורה.
this.db
מופע שירות מסד הנתונים, המספק ממשקים לתפעול מודלים (אוספים).
this.plugin
מופע התוסף הנוכחי, ניתן להשתמש בו לגישה למתודות מותאמות אישית של התוסף.
this.sequelize
מופע Sequelize, יכול לבצע ישירות פקודות SQL גולמיות או פעולות טרנזקציה.
this.queryInterface
ה-QueryInterface של Sequelize, המשמש בדרך כלל לשינוי מבני טבלאות, כגון הוספת שדות, מחיקת טבלאות וכדומה.
דוגמה לכתיבת Migration
בנוסף למאפיינים הנפוצים המפורטים לעיל, Migration מספק גם ממשקי API עשירים. לתיעוד מפורט, עיינו ב-Migration API.
הפעלת Migration מופעלת באמצעות הפקודה nocobase upgrade:
במהלך השדרוג, המערכת תקבע את סדר ההפעלה בהתבסס על סוג ה-Migration ועל appVersion.
בפיתוח תוספים, מומלץ להשתמש ב-Mock Server כדי לבדוק אם ה-migration מופעל כהלכה, ובכך למנוע פגיעה בנתונים אמיתיים.
טיפ: שימוש ב-Mock Server מאפשר לדמות במהירות תרחישי שדרוג ולאמת את סדר הפעלת ה-Migration ואת שינויי הנתונים.
beforeLoad, afterSync או afterLoad בהתאם לאובייקטים המופעלים, כדי למנוע תלות במודולים שטרם נטענו.appVersion כדי לציין בבירור את הגרסה הרלוונטית ל-migration, ובכך למנוע הפעלה חוזרת.