Alur Kerja Pengembangan Magento: bagaimana cara "sumber kontrol" database dan memperbarui instalasi Magento langsung dari instalasi Uji magento?

17

Saya memposting pertanyaan ini karena saya ingin tahu apa alur kerja pengembangan terbaik untuk seseorang yang ingin mengelola semua aspek dari toko online.

Seperti halnya semua pengembangan web, memiliki salinan langsung dan setidaknya satu salinan pengembangan dari seluruh solusi perangkat lunak tentu saja sangat penting. Namun mengelola hal-hal Magento tidak seperti mengelola perangkat lunak "berbasis file" lainnya karena ada juga komponen database yang ikut berperan, jadi, selain fakta bahwa saya dapat menggunakan alat seperti Git sebagai alat VCS untuk kontrol sumber, bagaimana caranya Saya ingin mengelola perbedaan dalam database antara versi langsung dan pengembangan?

Saya tentu saja dapat membuat cadangan dari database langsung melalui cron, dan memasukkan pernyataan SQL INSERT dari cadangan ke kontrol sumber, tetapi setelah itu dua database akan berkembang secara terpisah sementara pelanggan mendaftar dan memesan di satu sisi yang masuk ke database langsung, dan karena pembaruan dibuat ke database pengembangan secara terpisah. Ketika akan datang untuk menggabungkan versi pengembangan dan hidup, file php dapat diperbarui tanpa masalah melalui git (menggunakan gitignore pada file tunggal yang meng-host rincian konfigurasi database), tetapi bagaimana dengan file database? Bagaimana saya bisa menggabungkan dua file yang berisi pernyataan SQL INSERT dari dua cadangan tanpa menyebabkan bencana dan merusak sistem?

Ini adalah area teduh dari siklus pengembangan Magento yang saya hadapi: mengelola perbedaan basis data.

Bagi saya, sepertinya satu-satunya solusi untuk menyinkronkan konten basis data yang berbeda antara versi pengembangan / pengujian dan versi langsung dari toko Magento adalah dengan menuliskan di selembar kertas semua perubahan yang dibuat dalam versi pengembangan melalui Panel Admin Magento, dan berharap untuk tidak membuat kesalahan, dan kemudian setelah semuanya diuji dan bekerja file, untuk pergi ke versi live dan melakukan perubahan yang sama persis saat Magento offline dan dimasukkan ke mode pemeliharaan. Karena ini adalah proses manual, apakah rawan kesalahan.

Jadi, apa cara yang lebih baik untuk menangani sinkronisasi basis data antara server tes magento dan server live magento?

Terima kasih.

John Sonderson
sumber
2
untuk konfigurasi: github.com/punkstar/mageconfigsync
B00MER

Jawaban:

3

Opsi yang saya sadari

1.) Manual - dengan kata lain mengulangi tindakan Anda secara manual di back-end = seperti yang Anda sebutkan cenderung kesalahan, lambat

2.) Pada tingkat database dengan query SQL langsung = rawan kesalahan

3.) Buat ekstensi yang menambahkan, membuat perubahan melalui skrip setup / upgrade sql. File-file ini adalah bagian dari repositori Anda dan dapat digunakan. Pendekatan ini sebagian besar memotong UI.

4.) Ada beberapa pekerjaan yang sedang dilakukan dalam mencoba membuat beberapa alur kerja ini lebih menyenangkan dalam proyek-proyek seperti ini , tapi saya pikir itu belum siap untuk prime time dulu.

Dari semua opsi ini, saya saat ini mendukung 3.)

Kristof di Fooman
sumber
Ya, aku juga, mendukung 3 juga. Siapa yang tidak mau. Namun, karena 3 adalah satu-satunya pilihan nyata dan belum stabil pada saat ini saya akan mem-bypass semua saran dan hanya melakukan pengujian untuk tujuan memahami bagaimana UI bekerja di server lokal, dan melakukan semua katalog produk dan produk dan pembaruan lainnya langsung di server langsung, mungkin membuatnya offline untuk beberapa waktu, atau lebih baik, hanya berhati-hati untuk membuat produk aktif ketika mereka sudah siap, karena, saya harus hati-hati, mengapa tidak berhati-hati dalam dengan cara ini, yang mungkin dapat melakukan kerusakan paling tidak dari 1 dan 2 lagian. Thx
John Sonderson
3.) stabil, dapat diulang dan berbasis file - sisi buruknya adalah membutuhkan lebih banyak pekerjaan untuk mengatur.
Kristof di Fooman
1

Ada mageploy yang mungkin mengatasi masalah ini juga.

Fabian Blechschmidt
sumber
Adapun saat ini, tidak seorang pun di mageploy telah memperbarui situs webnya. Itu masih menyatakan bahwa itu hanya untuk Magento 1.7.0.2
Max
1

Ada alat basis data seperti Quest Software (sekarang Dell) Toad untuk MySQL. Alat manajemen basis data ini memiliki fitur perbandingan data dan struktur yang dapat Anda gunakan untuk melihat perubahan antara dua basis data. Simpan saja cadangan (atau git commit) dari versi database yang ingin Anda bandingkan, dan voila. Bahkan ada generator skrip untuk membawa keduanya ke sinkronisasi.

Aaron Dake
sumber
1

Kami memecahkan masalah ini dengan membuat DB jarak jauh untuk pengembangan lokal dan stadium untuk membaca / menulis. Sangat membantu dengan waktu dan efisiensi; tidak ada lagi kloning, mengunggah DB ke lingkungan semua orang.

Nam Bui
sumber