דרופל 7 כבר לא מקבל עדכוני אבטחה. האתר שלך חשוף להתקפות, ואין נתיב שדרוג ישיר לדרופל 10 — רק הגירה מלאה. השלמנו למעלה מ-20 פרויקטים כאלה, החל מ-50 ועד 200,000 צמתים. הניסיון שלנו עוזר להימנע ממלכודות נפוצות ולצמצם את זמן ההשבתה למינימום.
Migrate API מאיץ את העברת התוכן פי 3–5 בהשוואה לייצוא ידני. אבל הגירה אינה רק תוכן: מודולים וערכות נושא מותאמים אישית חייבים להיכתב מחדש לחלוטין. דרופל 7 הוא פרוצדורלי וחסר Composer; דרופל 10 הוא מונחה עצמים על Symfony עם ניתוב מבוסס YAML. ההבדלים הארכיטקטוניים מחייבים ריפקטורינג מלא של הקוד.
הגירה מדרופל 7 לדרופל 10: הוראות שלב-אחר-שלב
הבדלים ארכיטקטוניים: למה זה לא שדרוג
דרופל 7 ודרופל 10 הם מערכות שונות ארכיטקטונית. D7 אינו משתמש ב-Composer, OOP, או רכיבי Symfony. תוכן מוגר באמצעות Migrate API, בעוד קוד ערכת נושא ומודולים נכתב מחדש לחלוטין. זהו ריפקטורינג מלא, לא עדכון. לדוגמה, mymodule.routing.yml ב-D7 הופך לניתובי YAML, ופונקציות פרוצדורליות הופכות לשירותים המשתמשים בהזרקת תלות.
אסטרטגיות הגירה: איך לבחור
| אסטרטגיה | תיאור | זמן השבתה | מתי להשתמש |
|---|---|---|---|
| Migrate API | הגירה פרוגרמטית של תוכן ממסד הנתונים של D7 ל-D10. ניתן להריץ מספר פעמים לפני המעבר. | דקות | רוב הפרויקטים |
| הגירת תוכן ידנית | ייצוא דרך Views, ייבוא דרך Migrate או ידנית. | שעות | אתרים עם פחות מ-100 צמתים |
| Big bang | עצירה מלאה של D7, הגדרת D10, הגירה של הכל בבת אחת. | ימים | אתרים פשוטים שבהם זמן השבתה מקובל |
Migrate API הוא האפשרות המומלצת. הוא מאפשר להריץ הגירות מספר פעמים, ולהוסיף רק תוכן ששונה. ההבדל במאמץ בין Migrate API להגירה ידנית הוא פי 3–5 לטובת האוטומציה. שימוש ב-Migrate API יכול להפחית את התקציב ב-60-80%.
איך Migrate API עובד מתחת למכסה המנוע?
Migrate API משתמש בתוספים של מקור, עיבוד ויעד עבור כל ישות. המקור קורא נתונים ממסד הנתונים של D7, העיבוד הופך שדות, והיעד שומר לתוך D10. זה מאפשר שימוש חוזר בתוספים והגדרת מיפוי בקלות.איך להגר מודולים מותאמים אישית?
מודולים מותאמים אישית של דרופל 7 חייבים להיכתב מחדש לחלוטין עבור דרופל 10. לדוגמה, composer create-project drupal/recommended-project drupal10-site cd drupal10-site composer require drupal/migrate_plus drupal/migrate_tools drupal/migrate_upgrade drupal/migrate_source_csv drush en migrate migrate_plus migrate_tools migrate_upgrade -y מוחלף בקובץ YAML בשם settings.php, ופונקציות פרוצדורליות הופכות למחלקות עם הערות. מורכבות השכתוב תלויה בגודל המודול. לעיתים קרובות, כל הלוגיקה העסקית דורשת ריפקטורינג. בקשו ביקורת אתר כדי להעריך את המאמץ.
איך אנחנו מבצעים הגירה: שלב-אחר-שלב
ראשית, אנו מבצעים ביקורת מלאה של האתר הנוכחי. אנו ניגשים לשרת D7 ואוספים מדדים: רשימת מודולים פעילים, סוגי צמתים, גודל מסד נתונים. לאחר מכן אנו מקימים שרת חדש עם דרופל 10 ומתקינים חבילות הגירה.
composer create-project drupal/recommended-project drupal10-site
cd drupal10-site
composer require drupal/migrate_plus drupal/migrate_tools drupal/migrate_upgrade drupal/migrate_source_csv
drush en migrate migrate_plus migrate_tools migrate_upgrade -yחברו את מסד הנתונים של D7 כמסד נתונים נוסף ב-$databases['migrate']['default'] = [ 'driver' => 'mysql', 'database' => 'drupal7_db', 'username' => 'db_user', 'password' => 'db_pass', 'host' => '127.0.0.1', 'port' => '3306', 'prefix' => '', ]; :
$databases['migrate']['default'] = [
'driver' => 'mysql',
'database' => 'drupal7_db',
'username' => 'db_user',
'password' => 'db_pass',
'host' => '127.0.0.1',
'port' => '3306',
'prefix' => '',
];הפקודה drush migrate:upgrade יוצרת תצורות YAML עבור משתמשים, טקסונומיה, סוגי תוכן, שדות, צמתים, קבצים, בלוקים ותפריטים. לאחר מכן ההגירות רצות בסדר תלות: תחילה תפקידים, אחר כך סוגי תוכן, שדות, טקסונומיה, משתמשים, קבצים, צמתים, תפריטים ובלוקים.
drush migrate:import upgrade_d7_user_role
drush migrate:import upgrade_d7_node_type
drush migrate:import upgrade_d7_field
drush migrate:import upgrade_d7_field_instance
drush migrate:import upgrade_d7_taxonomy_vocabulary
drush migrate:import upgrade_d7_taxonomy_term
drush migrate:import upgrade_d7_user
drush migrate:import upgrade_d7_file
drush migrate:import upgrade_d7_node_complete
drush migrate:import upgrade_d7_menu
drush migrate:import upgrade_d7_block אזורים בעייתיים ופתרונותיהם
- CCK/Field API: אוסף שדות ב-D7 אינו מוגר ישירות — נדרש המודול
drush migrate:import upgrade_d7_user_role drush migrate:import upgrade_d7_node_type drush migrate:import upgrade_d7_field drush migrate:import upgrade_d7_field_instance drush migrate:import upgrade_d7_taxonomy_vocabulary drush migrate:import upgrade_d7_taxonomy_term drush migrate:import upgrade_d7_user drush migrate:import upgrade_d7_file drush migrate:import upgrade_d7_node_complete drush migrate:import upgrade_d7_menu drush migrate:import upgrade_d7_block. - Views: Views 3 (D7) מועברים חלקית. תצוגות מורכבות עם קשרים חייבות להיבנות מחדש ידנית.
- קבצי מדיה: קבצים מועתקים דרך התוסף
migrate_field_collection, עם נתיב המקור המצוין ב-file_copy.
צרו קשר לייעוץ — נבדוק את מורכבות הפרויקט שלכם ונציע תוכנית אופטימלית.
איך למזער זמן השבתה?
אנו משתמשים בהגירה דלתא. כמה ימים לפני המעבר, אנו מריצים הגירה מלאה ראשונית. ביום המעבר, אנו תחילה מעבירים את D7 למצב תחזוקה, ואז מריצים עדכונים מצטברים: source_base_path. לאחר מכן, אנו מעבירים DNS ל-D10 ומבטלים את מצב התחזוקה. זמן ההשבתה המלא הוא 15-30 דקות. צרו קשר כדי להעריך את הפרויקט שלכם.
מה כלול בעבודה?
- ביקורת מלאה של אתר D7 הנוכחי (מודולים, ערכות נושא, תוכן, מסד נתונים)
- הגירת תוכן דרך Migrate API עם אחריות לשלמות
- שכתוב מודולים וערכות נושא מותאמים אישית ל-OOP/Symfony
- הגדרת מודולי SEO (metatag, redirect, pathauto)
- הגירת בדיקות ובדיקות קבלה
- תיעוד הארכיטקטורה החדשה, גישת שרת ומנהל
- שבועיים של תמיכה לאחר ההגירה
בקשו ביקורת אתר D7 כדי לקבל לוחות זמנים ועלות מדויקים.
לוחות זמנים ועלות
| סוג אתר | לוח זמנים |
|---|---|
| פשוט (< 100 צמתים, סוגי תוכן סטנדרטיים) | 2-3 שבועות |
| בינוני (500-5000 צמתים, מודולים מותאמים אישית) | 4-8 שבועות |
| גדול (50 אלף+ צמתים, תלות מורכבת) | 3-6 חודשים |
העלות נקבעת באופן אישי לאחר ביקורת. צרו קשר כדי לדון בפרטים.







