הגדרת מודול Migrate להעברת תוכן ב-Drupal

העברת תוכן למערכת חדשה הופכת לעתים קרובות לכאוס ידני: קשרים נקרעים, מבנים הולכים לאיבוד, והצוות בודק טבלאות במשך שבועות. אנו מגדירים העברה מנוהלת ב-Drupal במפתח סופי — מביקורת מקורות ועד נהלי תחזוקה. אנו מעבירים קטלוגים, חומרים וקשרים ביניהם כך שלאחר ההפעלה אין צורך לתקן נתונים ידנית.

פיתוח ותחזוקה של כל סוגי האתרים:

אתרי מידע או יישומי אינטרנט
אתרי תדמית, דפי נחיתה, אתרי חברה, קטלוגים מקוונים, חידונים, אתרי קידום, בלוגים, מקורות חדשות, פורטלי מידע, פורומים, אגרגטורים
אתרי מסחר אלקטרוני או יישומי אינטרנט
חנויות מקוונות, פורטלי B2B, שווקים, בורסות מקוונות, אתרי קאשבק, בורסות, פלטפורמות דרופשיפינג, מנתחי מוצרים
יישומי אינטרנט לניהול תהליכים עסקיים
מערכות CRM, מערכות ERP, פורטלים ארגוניים, מערכות ניהול ייצור, מנתחי מידע
אתרי שירות אלקטרוני או יישומי אינטרנט
פלטפורמות מודעות, בתי ספר מקוונים, בתי קולנוע מקוונים, בוני אתרים, פורטלים לשירותים אלקטרוניים, פלטפורמות אירוח וידאו, פורטלים נושאיים

אלה רק חלק מהסוגים הטכניים של אתרים שאנו עובדים איתם, ולכל אחד מהם יכולים להיות מאפיינים ופונקציונליות ספציפיים משלו, וכן ניתן להתאים אותם לצרכים ולמטרות הספציפיים של הלקוח.

השירותים שאנו מציעים
מציג 1 מתוך 1כל 2062 השירותים
הגדרת מודול Migrate להעברת תוכן ב-Drupal
מורכב
~3-5 ימים
שאלות נפוצות

העברת Drupal: היכן נשברת העברת התוכן

העברת תוכן בין גרסאות Drupal או לפלטפורמה חדשה כמעט לעולם אינה מתבצעת "במעבר אחד". הסיבה העיקרית — התוכן ב-Drupal אינו קיים בפני עצמו: החומר מקושר לטקסונומיה, לשדות-הפניות לישויות אחרות, לקבצים, לתפריטים ולהרשאות גישה.

המודול Migrate מעביר ישויות אחת-אחת, וכברירת מחדל אינו מבטיח שהישות המקושרת כבר קיימת ברגע הייבוא. מכאן שלוש תקלות קלאסיות: קישורים שבורים לחומרים שטרם נוצרו, כפילויות בהרצה חוזרת, וטקסונומיה שהתפרקה — כאשר מונחים נוצרים מחדש במקום להיות מקושרים לקיימים.

קישורים שבורים מופיעים כאשר סדר ההעברות אינו מסודר: החומר מפנה לישות שעדיין אינה קיימת במסד הנתונים החדש. כפילויות הן תוצאה של היעדר אידמפוטנטיות: ללא מיפוי מפורש של המזהה המקורי, הרצה חוזרת יוצרת עותקים במקום לעדכן.

הטקסונומיה נשברת בשקט הרב ביותר: מונחים בעלי שם זהה אך מזהים מקוריים שונים מתמזגים או מתרבים, והמסננים באתר מתחילים להחזיר תוצאות ריקות.

אנחנו מתחילים לא בהרצת הייבוא, אלא במפת קשרים: אילו ישויות מפנות למה ובאיזה סדר יש להעביר אותן. לאחר מכן מגדירים מיפוי מזהים כך שהרצה חוזרת תעדכן רשומות ולא תיצור כפילויות, ובודקים את שלמות הקשרים לפני הפעלת האתר למבקרים. מפרקים כיצד זה נסגר בכל סוג של תקלה.

מה מספקת הגירה מנוהלת של תוכן

שלמות התוכן במקום בדיקה ידנית

המודול Migrate מעביר חומרים יחד עם הקשרים שלהם: טקסונומיה, קישורים בין צמתים, שיוך מדיה ושדות. הקשרים משוחזרים לפי מזהי המקור, ולא נבנים מחדש ביד, ולכן לאחר ההעברה לא נותרות קישורים "תלויים" ומונחים יתומים. בדיקת השלמות הופכת לחלק מהתהליך עצמו: אי-התאמות נראות מיד, ולא צפות כעבור חודש בחיפוש.

זמן ההעברה מתקצר באופן משמעותי

כל סוג חומר מתואר על ידי מערכת כללים נפרדת, וההעברה מתבצעת במנות, ולא רשומה אחר רשומה. במקום שבו הגירה ידנית ארכה שבועות, הגירה מנוהלת מסתיימת בתוך ימים, והרצה חוזרת לאחר תיקונים — בתוך שעות. אוטומציה של ההגירה מסירה את מקור העיכובים העיקרי: ההמתנה שאדם יעביר מנה נוספת של תוכן.

בדיקת הקשרים צפויה מראש

לפני ההעברה מוגדרות בדיקות: כמה רשומות צפויות בפלט, האם כל הקישורים נפתרו, והאם קבצים מצורפים לא אבדו. התוצאה מושווית לנתוני המקור לפי מונים, וסטיות נראות עוד לפני הפרסום. זה מסיר את הסיכון שחלק מהקטלוג או מהבלוג просто לא יגיע לגרסה החדשה.

החזרה לאחור והרצה חוזרת ללא אובדן

ההעברה מתבצעת בסביבת בדיקה, שבה ניתן להריץ אותה כמה פעמים שצריך. אם הכללים עודכנו — ההרצה חוזרת על בסיס נקי, והתוצאה נבדקת שוב. מחזור כזה נותן ביטחון שההעברה בסביבת הייצור תתבצע לפי תרחיש שכבר נבדק, ולא תהפוך לניסוי על אתר חי.

דרכי העברה: השוואת גישות

העברת תוכן אל Drupal כמעט לעולם אינה מסתכמת ב"לייצא ולהעלות בחזרה": לחומרים יש קשרים עם טקסונומיה, קישורים בין יישויות, רוויזיות ומטא-נתונים של שדות. בחירת הגישה קובעת כמה יעלה הרצה חוזרת כאשר משהו ישתבש בעותק הבדיקה, והאם ההעברה תישאר ניתנת לשחזור.

להלן שלוש אפשרויות אמיתיות, שביניהן בוחרים בתחילת הפרויקט, עם גבולות התחולה שלהן.

גישה מתי מתאימה מגבלות
העברה ידנית דרך הממשק נפחים חד-פעמיים של עשרות חומרים, פורמט מקורות שונה, אין חזרתיות אינה מתרחבת, שגיאות אינן נעקבות, קשרים ורוויזיות הולכים לאיבוד, הרצה חוזרת — מאפס
סקריפטים של מיגרציה (קוד עצמאי) מקור לא סטנדרטי או לוגיקת המרה שאינה קיימת בפתרונות מוכנים דורש תחזוקת קוד, אין יומן אחיד וחזרה לאחור, כל שינוי במקור — תיקון בסקריפט
מודול Migrate מקור מובנה, העברות סדירות או גדולות, נדרשת חזרתיות דורש תיאור של התאמת שדות, עבור מקורות לא סטנדרטיים נדרש תוסף משל עצמך

מודול Migrate מתאר את ההעברה באופן הצהרתי: המקור, מעבדי השדות והיעד מוגדרים בקונפיגורציה, ולא בקוד "כאן ועכשיו". זה נותן את מה ששתי הגישות הראשונות חסרות — ניתן לחזור על ההרצה על בסיס נקי ולקבל את אותה התוצאה, ופערים נראים בדוח, ולא צפים כעבור חודש בפרודקשן.

העברה ידנית וסקריפטים אינם מתבטלים: עבור עשרה עמודים או מקור ללא מבנה הם מהירים יותר. אך ברגע שהנפח גדל או שיש צורך לחזור על ההעברה לאחר תיקונים, הגישה ההצהרתית משתלמת — נבחן כיצד זה בנוי בפועל.

איך מתבצעת הגדרת מיגרציה ב-Drupal

הגדרת מיגרציה ב-Drupal היא לא ייבוא חד-פעמי, אלא תהליך מנוהל עם שלבים ניתנים לשחזור. המודול Migrate מתאר את ההעברה באופן הצהרתי: מה מאיפה נלקח, איך ממירים, ולאן מניחים. לכן התוצאה ניתנת לשחזור בסביבת בדיקה ובסביבת ייצור, ואינה תלויה בעריכות ידניות.

  1. ביקורת תוכן. עורכים מלאי של ישויות המקור: סוגי תוכן, טקסונומיות, משתמשים, קבצים, קשרים ביניהם. מתעדים כמויות, כפילויות, קישורים שבורים ושדות ללא מקבילה במודל היעד — זה קובע את היקף העבודה, ולא העדפות עיצוב.
  2. סכמת התאמה. מרכיבים מפה «מקור → ישות Drupal»: אילו שדות הופכים לשדות, מה עובר לטקסונומיות, איך מועברות מבנים מקוננים ומדיה. עבור כל אי-התאמה מחליטים מראש — המרה, איחוד או ויתור מודע על נתונים.
  3. הגדרת המיגרציה. מתארים את תהליכי ההעברה עם עיבוד טקסט, תאריכים, קישורים וקבצים, מגדירים תלויות בין השלבים כדי שחומרים לא יגיעו לפני מפתחות העזר שלהם. מריצים על עותק ומתקנים עד לתוצאה נקייה.
  4. בדיקת שלמות. משווים את מספר הרשומות, הקשרים, הרשאות הגישה ותקינות התצוגה. בנפרד בודקים הרצה חוזרת: המיגרציה צריכה לעדכן, ולא לשכפל תוכן.
  5. העברה וקבלה. מבצעים הרצה סופית בחלון מוסכם, מתעדים נקודת שחזור ומוסרים לצוות תיעוד לגבי ההרצה והיישום החוזר.

סדר זה מסיר את הסיכון המרכזי של מיגרציה — פער בין מה שהועבר לבין מה שציפו לראות. תארו את המשימה שלכם — נחזור עם הערכה ותוכנית עבודה.

תוצרי פלט: תצורות ותקנות

אנחנו מעבירים לא "ארכיון של פרויקט", אלא מערכת הגירה עובדת שצוות שלכם יכול להפעיל ולפתח בלעדינו. כל תוצר נמצא במאגר, עם היסטוריית שינויים וקשירה לסביבות.

  • תצורות הגירה — סט חוקים להעברה בצורת קבצים דקלרטיביים: מקורות, התאמת שדות, מטפלי ערכים, תלויות בין סטים. ההעברה משוחזרת בפקודה אחת, ולא בעריכות ידניות בממשק.
  • סכמות נתונים — מפת התאמה "מקור → מבנה יעד": סוגי חומרים, טקסונומיות, קשרים, שדות-קישור. לפיה רואים מה ולאן עובר, והיכן נדרשים המרות.
  • מדיניות גישה — תפקידים, הרשאות קריאה ופרסום של תוכן מועבר, חוקים לחומרים שירותיים וארכיוניים. כדי שאחרי המעבר אף אחד לא יאבד או יקבל גישה מיותרת.
  • תקנון הפעלה — סדר הפעולות: הכנת הסביבה, הרצה על עותק, השוואת נפחים, מעבר, החזרה לאחור. עם נקודות בקרה ואחראים בכל שלב.
  • תקנון החזרה לאחור — כיצד לחזור למצב הקודם אם ההשוואה לא התאימה: תמונות מצב שמורות, סדר השחזור, קריטריונים לעצירה.
  • תיעוד — תיאור ההיגיון של ההעברה, מגבלות ידועות ושגיאות טיפוסיות עם פתרונות. מספיק כדי שמהנדס חדש ית�צא בלי הסברים בעל פה.
  • דוחות השוואה — פרוטוקולי הרצות: כמה רשומות הועברו, כמה נדחו ומדוע. זו הוכחה לשלמות ההגירה, ולא הבטחה.

הסט מכסה את כל המחזור: מהרצת בדיקה ראשונה ועד תמיכה לאחר המעבר. תארו את המשימה שלכם — נחזור עם הערכה ותוכנית עבודה להגירה.

מקרה בוחן: העברת קטלוג ללא אובדן קשרים

הלקוח הגיע עם קטלוג ב-Drupal: כ-40,000 פריטים, שלושה סוגי ישויות המקושרים ביניהם בקישורים למונחי טקסונומיה ולקבצים. הקבלן הקודם העביר תוכן באמצעות סקריפטים מעל כתיבה ישירה למסד הנתונים — חלק מהקשרים "פריט → מונח" נותרו בטבלאות ישנות, וחלק שוכפלו.

בפרודקשן זה נראה כך: ב-18% מהכרטיסים לא נפתחו המדורים המקושרים, והעורכים תיקנו קשרים ידנית — 6-8 דקות לכל כרטיס.

מה היה לפני

  • קשרים אבודים "פריט → מונח": כ-7,200 (18% מהקטלוג).
  • קישורים שבורים לקבצים: 1,400, חלק מהמדיה היה מחוץ לאחסון מנוהל.
  • שחזור לאחר ריצה כושלת: יום וחצי — החזרה לאחור בוצעה מדאמפ של מסד הנתונים, מכיוון שאיש לא תיעד מצבי ביניים.
  • תיקון ידני: שבועיים של עבודת עורכים, ואחריו הקשרים שוב התפצלו בייבוא הבא.

מה שינו

הרכיבו מיגרציות על המודול המובנה Migrate: כל סוג ישות — סט חוקים נפרד, הקשרים מוגדרים בשלב העיבוד, ולא אחריו. מונחי טקסונומיה ומדיה נוצרים ראשונים, וההתאמה "מזהה ישן → חדש" נשמרת בטבלה נפרדת — לפיה הקשרים משוחזרים באופן דטרמיניסטי, ללא ניחוש לפי שם. הריצה מתבצעת ב-staging, והתוצאה נבדקת מול המקור לפני החלפת הפרודקשן.

מה נהיה

  • קשרים אבודים: 0, אי-התאמה עם המקור — 0 שורות לפי בדיקת בקרה.
  • קישורים שבורים לקבצים: 0, כל המדיה הועברה לאחסון מנוהל.
  • ריצה מלאה: 40 דקות, הרצה חוזרת אידמפוטנטית — לא נוצרים כפילויות.
  • שחזור לאחר תקלה: 12 דקות — חזרה למצב האחרון המתועד במקום פריסת דאמפ.
  • תיקון ידני של עורכים: לא נדרש.

בנפרד נמסרה ללקוח מפת מיגרציה: אילו שדות עוברים למה, היכן החוקים מתירים אי-התאמה, וכיצד להריץ את ההעברה מחדש בעדכון הבא של הקטלוג.

במה שונה מיגרציה של Drupal מהעברה ידנית?

העברה ידנית היא כאשר מנהל תוכן פותח עמוד ישן ומעתיק טקסט, תמונות ושדות לעמוד חדש. בעשרה פריטי תוכן ההבדל אינו מורגש, באלף מתחילה סטייה: במקום אחד אבד ה-alt של התמונה, במקום אחר הטקסונומיה לא הועברה, ובמקום נוסף נשאר קישור שבור לכתובת הישנה.

לא ניתן לבדוק זאת בעין על כל הנפח, והשגיאות צצות רק לאחר ההשקה, כאשר מנועי החיפוש כבר סרקו מחדש את האתר.

מיגרציה של Drupal באמצעות המודול Migrate פועלת אחרת: אתם מתארים את כללי ההעברה פעם אחת — מאיפה נלקחת הישות, כיצד ממפים שדות, מה לעשות עם קשרים מקוננים — ומכאן ואילך התהליך מתקדם במנות על פני כל בסיס הנתונים.

כל פריט תוכן עובר דרך אותם כללים, ולכן העמוד האלף מועבר באותה מידה של דיוק כמו הראשון. זו התשובה העיקרית בנוגע לאמינות: לא "בזהירות רבה יותר", אלא באופן משוחזר.

גם המהירות כאן אינה עוסקת ב"מהר יותר בידיים", אלא בכך שהתהליך אינו תלוי בשעות עבודה. ההעברה מתבצעת במנות ברקע, ניתן לעצור אותה ולהמשיך מהמקום שבו נעצרה, ולפני ההרצה — להריץ על עותק של בסיס הנתונים ולהשוות את התוצאה. העברה ידנית אינה ניתנת לבדיקה כך: כדי להבין שהכול התאים, יש לעבור שוב על כל הנפח בעין.

ישנו גם הבדל שלישי — הפיכוּת. המיגרציה משאירה יומן: אילו רשומות עובדו, אילו הוחמצו ומדוע. אם לאחר ההרצה יתברר שחלק מפריטי התוכן יש להעביר אחרת, מתקנים את הכלל ומריצים מחדש רק את המנות שנפגעו, מבלי לגעת במה שכבר הועבר. בהעברה ידנית, החזרה לאחור משמעה עבודה חוזרת מאפס.

לכן הבחירה בין המודול Migrate להעברה ידנית אינה עוסקת בנוחות הכלי, אלא בשאלה האם אתם מוכנים לשאת באחריות לשלמות הנתונים על פני כל הנפח. עד כמה עשרות עמודים הדרך הידנית מוצדקת, ומעבר לכך מחיר הטעות גדל מהר יותר מהנפח.

ספקות טכניים נפוצים

החשש הראשון והנפוץ ביותר הוא שההגירה תחייב עצירה של האתר שכבר פועל. בפועל, אנו מעבירים את התוכן לעותק של מסד הנתונים הראשי, משווים את התוצאה ורק לאחר מכן מעבירים את התעבורה: המבקרים ממשיכים לעבוד על הגרסה הנוכחית, וחלון אי-הזמינות מצטמצם לדקות בודדות.

אם האתר פרוס ומתמלא באופן פעיל, אנו קובעים תחילה נקודת סנכרון, מעבירים את עיקר הנתונים, ואת השינויים שהצטברו במהלך ההעברה מדביקים באמצעות מעבר חוזר על יומן השינויים.

מה עושים עם שדות וסוגי תוכן לא סטנדרטיים?

ישויות סטנדרטיות מועברות לפי כללים טיפוסיים, אך שדות שנוספו למשימה ספציפית דורשים התאמה נפרדת. אנו מתארים כל שדה כזה בתצורת ההגירה, מגדירים את המרת הערכים ואת סדר הטיפול בקישורים בין הפריטים.

אם המבנה במקור וביעד שונה, אנו מעבירים את הנתונים לשכבה מתווכת ומסדרים אותם בשדות הנדרשים בצד היעד — כך תוכן לא סטנדרטי אינו הולך לאיבוד ואינו הופך לאשפה.

כיצד נבדקת שלמות הנתונים לאחר ההעברה?

אנו משווים לא "בעין" אלא לפי סכומי ביקורת: מספר הפריטים מכל סוג, מספר הקבצים והתמונות המקושרים, מילוי שדות חובה, ושימור הקשרים בין הישויות. בנפרד אנו בודקים שאף פריט לא נותר ללא מחבר, קטגוריה או כתובת עמוד.

אי-התאמות נכנסות לדוח עם ציון הרשומות הספציפיות — אותן אנו מנתחים נקודתית, ולא מפעילים מחדש את כל ההגירה.

האם ניתן לחזור אחורה אם משהו השתבש?

כן. ההעברה מתבצעת לעותק, ולכן האתר הראשי נשאר ללא שינוי עד לרגע המעבר. לפני ההפעלה הסופית אנו שומרים תמונת מצב מלאה של מסד הנתונים והקבצים — בכל ספק אנו חוזרים אליה ומבצעים שוב את ההעברה עם תצורה מתוקנת. החזרה לאחור אינה דורשת שחזור ידני של התוכן: החזרה לתמונת המצב אורכת דקות.

מה עם כתובות העמודים ותוצאות החיפוש?

אנו שומרים על הכתובות הישנות או מגדירים הפניה לחדשות, כדי שהתעבורה והמיקומים שנצברו לא יאבדו. את מפת הכתובות מכינים לפני המעבר, ולאחר ההפעלה בודקים שכל העמודים המרכזיים נפתחים בקישורים הקודמים ללא שגיאות.

בואו נדון במשימת ההגירה שלכם

כדי לחזור עם הערכת הגירה ולא עם מילים כלליות, אנחנו צריכים מכם מינימום של נתוני פתיחה: הפלטפורמה הנוכחית והגרסה שלה, היקף התוכן לפי סוגי ישויות, מספר השפות, רשימת האינטגרציות ותאריכים קשיחים, אם יש כאלה. זה מספיק כדי להבין את סכימת ההעברה, להעריך את מאמץ העבודה ולנקוב בלוח זמנים ריאלי.

בהמשך ננתח את מבנה הנתונים בצד המקור, נשווה אותו למודלים של חומרים ולשדות בצד היעד, ונעבור בנפרד על קבצים, קישורים, טקסונומיה ומשתמשים. בסופו של דבר תקבלו תוכנית עבודה עם שלבים, נקודות בדיקה וסדר העברה — בלי הפתעות בתהליך.

  • ניתוח המאגר הנוכחי: סוגי חומרים, שדות, קשרים, טקסונומיה, מדיה, משתמשים ותפקידים.
  • סכימת התאמה: מה מועבר אחד לאחד, מה דורש המרה, מה נזרק במודע.
  • סדר ההגירה: תוכן, קבצים, קישורים, מטא-נתונים, הפניות מחדש — עם בדיקה בכל שלב.
  • תוכנית בדיקות: השוואת מספר רשומות, אימות מדגמי של שדות, בקרת קישורים ותמונות שבורים.
  • אסטרטגיית rollback: איך לחזור למצב ההתחלתי אם הקבלה תגלה אי-התאמות.
  • הערכת לוחות זמנים והרכב העבודה לפי שלבים — בהתחשב בתאריכים ובהיקף שלכם.
  • תקנון תמיכה לאחר ההעברה: עדכונים, גיבויים, ניטור זמינות.

תארו את המשימה — פלטפורמה, היקף ומגבלות. נחזור עם הערכת הגירה ותוכנית עבודה, שבה יהיה ברור מה ובאיזה סדר אנחנו עושים.

הכישורים שלנו:

העבודות האחרונות

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1393
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1368
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1139
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1152
  • פיתוח אתר עבור SBH Partners
    פיתוח אתר עבור SBH Partners
    1231
  • פיתוח אתר עבור Red Pear
    פיתוח אתר עבור Red Pear
    641