Magento Development Workflow: วิธีการ "ควบคุมแหล่งข้อมูล" และอัพเดตการติดตั้ง Magento แบบสดจากการติดตั้ง Test Magento?


17

ฉันกำลังโพสต์คำถามนี้เพราะฉันต้องการทราบว่าเวิร์กโฟลว์การพัฒนาที่ดีที่สุดสำหรับใครบางคนที่ต้องการจัดการทุกด้านของร้านค้าออนไลน์

เช่นเดียวกับการพัฒนาเว็บทั้งหมดแน่นอนว่าการมีสำเนาสดและสำเนาพัฒนาซอฟต์แวร์อย่างน้อยหนึ่งชุดเป็นสิ่งที่สำคัญมาก อย่างไรก็ตามการจัดการข้อมูลวีโอไอพีนั้นไม่เหมือนกับการจัดการซอฟต์แวร์ "ไฟล์ที่ใช้ไฟล์อื่น ๆ " เพราะยังมีส่วนประกอบฐานข้อมูลที่เข้ามาเล่นดังนั้นนอกเหนือจากความจริงที่ว่าฉันสามารถใช้เครื่องมือเช่น Git เป็นเครื่องมือ VCS สำหรับการควบคุมแหล่งที่มาได้อย่างไร ฉันไปเกี่ยวกับการจัดการความแตกต่างในฐานข้อมูลระหว่างเวอร์ชันสดและการพัฒนาหรือไม่

แน่นอนว่าฉันสามารถทำการสำรองข้อมูลของฐานข้อมูลสดผ่าน cron และแทรกคำสั่ง SQL INSERT จากการสำรองข้อมูลลงในการควบคุมแหล่งที่มา แต่หลังจากนั้นฐานข้อมูลทั้งสองจะพัฒนาแยกกันในขณะที่ลูกค้าลงทะเบียนและสั่งซื้อสินค้าด้วยมือเดียว เป็นการอัพเดตที่ทำกับฐานข้อมูลการพัฒนาแยกต่างหาก เมื่อมันมาถึงการรวมการพัฒนาและเวอร์ชันสดไฟล์ php สามารถอัปเดตได้โดยไม่มีปัญหาผ่าน git (โดยใช้ gitignore บนไฟล์เดียวซึ่งรายละเอียดการกำหนดค่าฐานข้อมูลโฮสต์) แต่ไฟล์ฐานข้อมูลล่ะ? ฉันจะรวมสองไฟล์ที่มีคำสั่ง INSERT SQL จากการสำรองข้อมูลสองรายการโดยไม่ก่อให้เกิดความเสียหายและทำลายระบบได้อย่างไร

นี่คือพื้นที่ร่มรื่นของวงจรการพัฒนาวีโอไอพีที่ฉันกำลังเผชิญอยู่: การจัดการความแตกต่างของฐานข้อมูล

สำหรับฉันดูเหมือนโซลูชันเดียวที่จะซิงโครไนซ์เนื้อหาของฐานข้อมูลซึ่งแตกต่างกันระหว่างการพัฒนา / ทดสอบและเวอร์ชั่นสดของ Magento store คือการเขียนลงบนกระดาษแผ่นหนึ่งการเปลี่ยนแปลงทั้งหมดที่เกิดขึ้นในเวอร์ชันการพัฒนาผ่าน Magento Admin Panel และหวังว่าจะไม่ทำผิดพลาดหลังจากนั้นเมื่อทุกอย่างถูกทดสอบและทำงานเพื่อไปยังเวอร์ชันสดและดำเนินการเปลี่ยนแปลงเหล่านั้นในขณะที่ Magento ถูกออฟไลน์และเข้าสู่โหมดการบำรุงรักษา เนื่องจากนี่เป็นกระบวนการที่ทำด้วยมือจึงมีแนวโน้มที่จะเกิดข้อผิดพลาด

ดังนั้นวิธีที่ดีกว่าในการจัดการการซิงโครไนซ์ฐานข้อมูลระหว่างเซิร์ฟเวอร์วีโอไอพีทดสอบและเซิร์ฟเวอร์วีโอไอพีสดคืออะไร

ขอบคุณ


2
สำหรับการกำหนดค่า: github.com/punkstar/mageconfigsync
B00MER

คำตอบ:


3

ตัวเลือกที่ฉันรู้

1. ) Manual - กล่าวอีกนัยหนึ่งคือการทำซ้ำการกระทำของคุณด้วยตนเองใน back-end = ตามที่คุณกล่าวถึงข้อผิดพลาดช้า

2. ) ในระดับฐานข้อมูลที่มีคำสั่ง SQL โดยตรง = มีแนวโน้มที่จะเกิดข้อผิดพลาด

3. ) สร้างส่วนขยายที่เพิ่มทำการเปลี่ยนแปลงผ่านสคริปต์การติดตั้ง / อัพเกรดสคริปต์ ไฟล์เหล่านี้เป็นส่วนหนึ่งของที่เก็บของคุณและสามารถนำไปใช้งานได้ วิธีการนี้ส่วนใหญ่ข้าม UI

4. ) มีงานบางส่วนที่พยายามทำให้เวิร์กโฟลว์นี้น่าพอใจยิ่งขึ้นในโครงการเช่นนี้แต่ฉันคิดว่ามันยังไม่พร้อมสำหรับช่วงไพร์มไทม์

จากตัวเลือกทั้งหมดที่ฉันโปรดปรานในปัจจุบัน 3. )


ใช่ฉันเช่นกันชอบ 3 เช่นกัน ใครจะไม่ อย่างไรก็ตามเนื่องจาก 3 เป็นตัวเลือกจริงเท่านั้นและมันยังไม่เสถียรเท่าที่ควรดังนั้นฉันจะข้ามคำแนะนำทั้งหมดและทำการทดสอบเพื่อทำความเข้าใจว่า UI ทำงานบนเซิร์ฟเวอร์ภายในเครื่องอย่างไรและดำเนินการแคตตาล็อกผลิตภัณฑ์ทั้งหมดและ ผลิตภัณฑ์และการอัปเดตอื่น ๆ โดยตรงบนเซิร์ฟเวอร์สดอาจทำให้ออฟไลน์อยู่ครู่หนึ่งหรือดีกว่าเพียงระมัดระวังที่จะทำให้ผลิตภัณฑ์ใช้งานได้เมื่อพวกเขาพร้อมเพราะฉันจะต้องระมัดระวังต่อไปทำไมไม่ระวังด้วย ด้วยวิธีนี้ซึ่งอาจทำให้เกิดความเสียหายน้อยที่สุดจาก 1 และ 2 อย่างไรก็ตาม ขอบคุณ
John Sonderson

3. ) เสถียรทำซ้ำและอ้างอิงไฟล์ - ข้อเสียคือต้องมีการตั้งค่าเพิ่มเติม
Kristof ที่ Fooman


1

มีเครื่องมือฐานข้อมูลเช่น Toad สำหรับ MySQL ของ Quest Software เครื่องมือการจัดการฐานข้อมูลนี้มีคุณสมบัติการเปรียบเทียบข้อมูลและโครงสร้างซึ่งคุณสามารถใช้เพื่อดูการเปลี่ยนแปลงระหว่างสองฐานข้อมูล เพียงแค่ทำการสำรองข้อมูล (หรือคอมไพล์ยอมรับ) ของรุ่นฐานข้อมูลที่คุณต้องการเปรียบเทียบและ voila มีแม้กระทั่งตัวสร้างสคริปต์สำหรับนำทั้งสองเข้าสู่การซิงค์


1

เราแก้ไขปัญหานี้โดยการสร้างฐานข้อมูลระยะไกลสำหรับการพัฒนาในพื้นที่และการแสดงละครเพื่ออ่าน / เขียน ช่วยด้วยเวลาและประสิทธิภาพจริงๆ ไม่ต้องโคลนอีกต่อไปอัปโหลดฐานข้อมูลไปยังสภาพแวดล้อมของทุกคน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.