การประมาณการอัปเกรดวีโอไอพีเป็นกระบวนการรวบรวมข้อมูลเกี่ยวกับการดัดแปลงที่ใช้กับการติดตั้งที่คุณกำลังจะทำให้ทันสมัยตรวจสอบว่าการแก้ไขเหล่านั้นอาจทำให้เกิดปัญหาและประเมินว่าต้องใช้เวลานานแค่ไหนในการแก้ไข
การดัดแปลงทั้งหมดสามารถแบ่งออกเป็นoff-coreและin-coreได้อย่างแท้จริง
การดัดแปลงแบบ Off-Core คือสิ่งที่จะไม่ถูกเขียนทับด้วยการอัพเกรด เหล่านั้นส่วนขยายของบุคคลที่ 3 , ไฟล์หลักใส่ลงไปในขอบเขตท้องถิ่น (app / รหัส / ท้องถิ่น / ผู้วิเศษ) และธีมที่กำหนดเอง
การปรับเปลี่ยนในแกนจะนำไปใช้โดยตรงกับไฟล์หลักของ Magento (แอพ / รหัส / แกนหลัก), ไฟล์การโลคัลไลเซชั่น (app / locale / en_US), เทมเพลตหลักและบางอย่างเช่นjavascripts , ไลบรารีภายนอกซึ่งไม่ค่อยกำหนดเอง .
การปรับเปลี่ยน Off-Core
ส่วนขยายของบุคคลที่สาม
ในระหว่างการอัพเกรดส่วนขยายของบุคคลที่สามเป็นแหล่งที่มาหลักของปัญหา ซึ่งหมายความว่าส่วนขยายเพิ่มเติมที่คุณมีเวลามากขึ้นคุณจะต้องวิเคราะห์พวกเขา
สิ่งแรกที่ต้องตรวจสอบคือถ้าฟังก์ชั่นที่มีให้โดยส่วนขยายนั้นยังไม่ได้ใช้งานในเวอร์ชันของ Magento ที่คุณกำลังอัพเกรด ยกตัวอย่างเช่นส่วนขยายบางอย่างเช่นYoast_CanonicalUrl
, Mxperts_CustomerAddress
หรือFontis_Wysiwyg
ถูกนำมาใช้กันอย่างแพร่หลายในวีโอไอพี 1.3.xx และมากกว่า แต่ตอนนี้เป็นส่วนหนึ่งของการทำงานหลักวีโอไอพีและไม่จำเป็นต้อง
ดังนั้นควรตรวจสอบ (ถามลูกค้าของคุณ) ว่าคุณต้องการส่วนขยายทั้งหมดที่คุณมีหรือไม่ อาจมีนามสกุลที่คุณติดตั้ง แต่ไม่เคยใช้จริง ๆ ดังนั้น ณ จุดนี้มันเป็นการดีที่จะทำความสะอาด
จากนั้นสิ่งสำคัญในการตรวจสอบคือความเข้ากันได้ของส่วนขยายที่เหลือแต่ละส่วนด้วย Magento รุ่นที่คุณกำลังอัปเกรด ในกรณีที่ส่วนขยายบางส่วนไม่สามารถใช้งานร่วมกันได้และไม่มีส่วนขยายที่คล้ายกันคุณจะมีตัวเลือกที่ยากในการสูญเสียฟังก์ชันการทำงานบางอย่างหรือแก้ไขส่วนขยายที่มีอยู่เพื่อให้เข้ากันได้
หมายเหตุ: อย่าแก้ไขส่วนขยายของบุคคลที่สามโดยตรง แต่สร้างส่วนขยายใหม่ซึ่งจะขยายส่วนที่ล้าสมัยแล้วตั้งค่าการพึ่งพาใน bootstrap XML ของส่วนขยายใหม่
หลังจากเสร็จสิ้นการวิเคราะห์ที่แท้จริงของแต่ละส่วนขยายที่เหลือสามารถให้ มันจะเริ่มต้นด้วยการตรวจสอบetc/config.xml
ไฟล์เสมอ มี 3 สิ่งที่ต้องพิจารณาคือ:
- การเขียนคลาสใหม่ไม่ใช่เทคนิคที่สะอาดด้วยตัวเอง แต่ในบางกรณีก็ไม่มีวิธีอื่น ดังนั้นหากมีการเปลี่ยนคลาสที่เขียนใหม่ใน Magento เวอร์ชันใหม่อาจเป็นปัญหาที่อาจเกิดขึ้นได้
- การอัปเดตเลย์เอาต์จะทำให้เกิดปัญหากับการอัปเกรดของคุณน้อยลง แต่ถ้าหากส่วนขยายอ้างอิงบล็อกซึ่งเลิกใช้ในเวอร์ชันวีโอไอพีที่ใหม่กว่าคุณจะต้องแก้ไขปัญหานี้
- การอัปเดตของ SQLเป็นแหล่งของปัญหาอย่างมากในระหว่างการอัพเกรด ปัญหานี้เกิดขึ้นเมื่อส่วนขยายของบุคคลที่สามกำลังสร้างคีย์ต่างประเทศที่อ้างอิงถึงบางฟิลด์ในตาราง Magento ที่เป็นค่าเริ่มต้น เป็นผลให้ฟิลด์นี้ถูกล็อคจากการดัดแปลง และถ้าสคริปต์การติดตั้งดั้งเดิมจะพยายามอัปเดตฟิลด์นี้มันจะล้มเหลวอย่างเงียบ ๆ หลังจากนั้นทุกสคริปต์การติดตั้งถัดไปที่อ้างอิงถึงฟิลด์นี้จะทำให้การอัปเกรดของคุณล้มเหลว
app / รหัส / ท้องถิ่น / Mage
หลังจากเสร็จสิ้นส่วนขยายแล้วก็ถึงเวลาดูที่app/code/local/Mage
ไดเรกทอรีของคุณ ที่นี่คุณจะพบไฟล์แกนที่ถูกแก้ไขถูกย้ายเข้าไปในlocal
ขอบเขต พวกเขาแต่ละคนจะเสียค่าใช้จ่ายให้คุณผมสีเทาเพราะคุณไม่เคยรู้ (ถ้าไม่ใช่คุณที่ใส่ไว้ที่นั่น) สิ่งที่ได้รับการแก้ไขและเหตุผลอะไร ดังนั้นคุณต้องเปรียบเทียบแต่ละรายการกับจุดเริ่มต้นและโอนย้ายฟังก์ชันการทำงานเพิ่มเติมไปยังไฟล์ที่สอดคล้องของเวอร์ชันใหม่
ธีมที่กำหนดเอง
การปรับเปลี่ยน off-core มัดล่าสุดเป็นธีมที่กำหนดเอง นี่อาจดูเหมือนไม่ใช่เรื่องใหญ่ แต่อันที่จริงนี่เป็นพื้นที่สีเทา ธีมพื้นฐานของวีโอไอพีกำลังได้รับการแก้ไขจากรุ่นเป็นรุ่นและแต่ละชุดรูปแบบที่กำหนดเองจะต้องเลียนแบบการปรับเปลี่ยนบางส่วน น่าเสียดายที่ไม่มี bullet เงินเพื่อพิจารณาว่าควรมองหาอะไรและต้องย้ายอะไร ดังนั้นเพียงเตรียมพร้อมสำหรับความประหลาดใจที่สำคัญและ nitpicking เล็กน้อยหลังจากการอัปเกรดของคุณ
การปรับเปลี่ยนแบบ In-Core
ในโลกที่สมบูรณ์แบบไม่มี แต่เมื่อคุณได้รับการติดตั้ง Magento หลังจากถูกทารุณกรรมโดยผู้พัฒนาบุคคลที่สามผู้เสนอราคาถูกมากคุณสามารถคาดหวังได้ทุกอย่าง ดังนั้นการแก้ไข in-core คือสิ่งที่จะถูกเขียนทับในระหว่างกระบวนการอัพเกรด ในกรณีส่วนใหญ่มันจะไม่เกิดข้อผิดพลาดใด ๆ แต่เป็นผลให้คุณจะสูญเสียฟังก์ชันการทำงานที่เพิ่มเข้ามาในลักษณะที่โหดร้าย
วิธีเดียวที่จะตรวจจับการดัดแปลงแบบ in-core คือการเปรียบเทียบไฟล์ทั้งหมดของการติดตั้ง Magento ของคุณกับไฟล์ที่สะอาดในเวอร์ชั่นเดียวกัน ฉันแนะนำให้ทำกับคอมไพล์ ทำไม? เพียงเพราะมันจะจัดการกับบรรทัดใหม่และช่องว่างทั้งหมดอย่างดี
แม้ว่าการติดตั้ง Magento ของคุณไม่ได้อยู่ภายใต้ git คุณยังสามารถคัดลอกไฟล์ของคุณไปยังไดเรกทอรีอื่นแล้วเรียกใช้ git init จากนั้นให้เริ่มต้นกระทำการคัดลอก“สะอาด” git status
วีโอไอพีไฟล์ผ่านและเรียกใช้ คุณจะได้รับสิ่งนี้:
ตอนนี้ขึ้นอยู่กับจำนวนไฟล์ที่ถูกแก้ไขที่คุณสามารถเรียกใช้git diff
ในแต่ละไฟล์หรือในแบทช์ทั้งหมดในครั้งเดียว สิ่งนี้จะให้ข้อมูลอ้างอิงที่ครอบคลุมเกี่ยวกับการดัดแปลงในแกนทั้งหมดที่ทำ หากคุณมีการสร้างภาพข้อมูลคอมไพล์เช่น phpStorm ชีวิตเป็นวิธีที่ง่ายขึ้นสำหรับคุณ:
ฉันแนะนำให้ทำเช่นgit diff > changes.txt
นั้นคุณจะมีรายการการแก้ไขด้วยตัวเองเสมอ
มีรายการของการแก้ไขหลักที่คุณสามารถประเมินสิ่งที่จะต้องถูกโอนไปยังรุ่นใหม่และระยะเวลาที่จะต้องทำเช่นนั้น
ตอนนี้ฉันอยากจะให้คำแนะนำสำหรับการอัพเกรดจริง กระบวนการนี้ได้รับการบันทึกไว้อย่างดีดังนั้นฉันจะไม่เขียนคำสั่งที่จะเรียกใช้และตำแหน่งที่จะคลิก อย่างไรก็ตามฉันต้องการเน้นในสิ่งสำคัญหลายประการ:
- เรากำลังสมมติว่าคุณกำลังอัพเกรดในสภาพแวดล้อมการพัฒนาของคุณ การรันการอัปเกรดที่เซิร์ฟเวอร์การผลิตของคุณเป็นการฆ่าตัวตาย
- อย่าปล่อยให้พวกเขาเปลี่ยนแปลงอะไรในการผลิตในขณะที่คุณกำลังอัพเกรด ทำให้ Magento ของคุณอยู่ภายใต้การควบคุมเวอร์ชันหรือแม้แต่ล็อกไฟล์ชั่วคราวจากการเขียน
- ปิดใช้งานส่วนขยายของบุคคลที่สามทั้งหมด แต่โปรดทราบว่าส่วนขยายใดที่ถูกปิดใช้งานในตอนแรกดังนั้นคุณจะไม่เปิดใช้งานในภายหลัง
- ตรวจสอบว่ามีสคริปต์การล้างข้อมูล Magento ทำงานบนเซิร์ฟเวอร์หรือไม่ มิฉะนั้นตัดตารางทั้งหมดที่เริ่มต้นด้วย
dataflow_*
, ,log_*
report_*
- เปลี่ยนกลับเป็นธีมเริ่มต้นในเวลาอัพเกรด
หลังจากอัปเกรดสคริปต์เสร็จสมบูรณ์:
- การอ้างอิงที่
changes.txt
คุณทำก่อนที่จะโอนย้ายการแก้ไขแบบ in-core ทั้งหมดซึ่งเป็นการย้ายที่คุ้มค่าจริงๆ
- โอนย้าย
app/code/local/Mage
การดัดแปลงที่พบก่อนการอัพเกรด
- หนึ่งต่อหนึ่งเปิดใช้งานส่วนขยายของบุคคลที่สาม
- นำธีมของคุณกลับมาและเปรียบเทียบผลลัพธ์กับเซิร์ฟเวอร์ที่ใช้งานจริงอย่างละเอียด
- ปรับใช้กับการผลิตเมื่อคุณพอใจกับผลลัพธ์
ข้อสรุป
ฉันรู้ว่าทั้งหมดนี้ฟังดูน่ากลัว แต่ถ้าคุณอัปเกรดเป็นประจำรักษาความสะอาดหลักของคุณและติดตั้งส่วนขยายเฉพาะจากผู้ขายที่คุณไว้วางใจจริงๆและเฉพาะเมื่อคุณต้องการจริงๆคุณจะไม่เผชิญกับความยากลำบากส่วนใหญ่ที่อธิบายไว้ในบทความนี้ รักษา Magento EcoSystem ของคุณให้แข็งแรงและคุณจะได้รับรางวัล
โพสต์ Scriptum
ในกรณีที่ซับซ้อนมากคุณควรเริ่มต้นใหม่ด้วยการติดตั้ง Magento ใหม่ล่าสุดและโยกย้ายธีมของร้านค้าและการใช้งานทีละขั้นตอน สิ่งนี้จะต้องใช้เวลาแน่นอน แต่ในที่สุดคุณจะมีระบบ Magento ที่มีสุขภาพดีพร้อมกับการรับรู้อย่างเต็มที่ถึงสิ่งที่เกิดขึ้น