Flusso di lavoro di sviluppo Magento: come "database di controllo del codice sorgente" e aggiornare l'installazione di Magento live dall'installazione di Test Magento?


17

Sto pubblicando questa domanda perché vorrei sapere qual è il miglior flusso di lavoro di sviluppo per qualcuno che vuole gestire tutti gli aspetti di un negozio online.

Come per tutto lo sviluppo web ovviamente, avere una copia live e almeno una copia di sviluppo dell'intera soluzione software è ovviamente molto importante. Tuttavia, gestire le cose di Magento non è come gestire altri software "basati su file" perché c'è anche un componente di database che entra in gioco, quindi, oltre al fatto che posso usare uno strumento come Git come strumento VCS per il controllo del codice sorgente, come sarebbe Vado a gestire le differenze nel database tra le versioni live e di sviluppo?

Ovviamente potrei fare backup del database live tramite cron e inserire le istruzioni INSERT SQL dal backup nel controllo del codice sorgente, ma dopo che due database si evolveranno separatamente mentre i clienti si registrano e piazzano gli ordini da un lato che vanno nel database live, e poiché gli aggiornamenti vengono eseguiti separatamente nel database di sviluppo. Quando si tratterà di unire lo sviluppo e le versioni live, i file php possono essere aggiornati senza problemi tramite git (usando gitignore sul singolo file che ospita i dettagli di configurazione del database), ma per quanto riguarda i file del database? Come posso unire i due file contenenti le istruzioni INSERT SQL dai due backup senza causare un disastro e distruggere il sistema?

Questa è l'area ombreggiata del ciclo di vita dello sviluppo di Magento che sto affrontando: gestire le differenze tra i database.

Mi sembra, come l'unica soluzione per sincronizzare i contenuti del database che differiscono tra sviluppo / test e versioni live del negozio Magento è di annotare su un pezzo di carta tutte le modifiche apportate nella versione di sviluppo tramite il Pannello di amministrazione Magento, e spero di non commettere errori, quindi una volta che tutto è stato testato e funziona, passare alla versione live ed eseguire esattamente le stesse modifiche mentre Magento viene portato offline e messo in modalità manutenzione. Poiché si tratta di un processo manuale, è soggetto a errori.

Quindi, qual è il modo migliore per gestire la sincronizzazione del database tra il server magento di prova e il server magento live?

Grazie.


2
per la configurazione: github.com/punkstar/mageconfigsync
B00MER

Risposte:


3

Opzioni di cui sono a conoscenza

1.) Manuale - in altre parole, ripetendo manualmente le tue azioni nel back-end = come hai detto incline all'errore, rallenta

2.) A livello di database con query SQL dirette = soggetto a errori

3.) Creare un'estensione che aggiunge, apporta modifiche tramite script di installazione / aggiornamento di sql. Questi file fanno parte del repository e possono essere distribuiti. Questo approccio ignora principalmente l'interfaccia utente.

4.) C'è stato del lavoro in corso nel tentativo di rendere più piacevole questo flusso di lavoro in progetti come questo , ma penso che non sia ancora del tutto pronto per la prima serata.

Tra tutte queste opzioni, al momento preferisco 3.)


Sì, anche io, favorisco anche 3. Chi non lo farebbe. Tuttavia, poiché 3 è l'unica vera opzione e non è stabile fino ad ora ho intenzione di bypassare tutti i suggerimenti e fare semplicemente test allo scopo di comprendere come l'interfaccia utente funziona sul server locale, e realizzare tutto il catalogo dei prodotti e prodotti e altri aggiornamenti direttamente sul server live, eventualmente portandolo offline per un po 'di tempo, o meglio, facendo solo attenzione a rendere i prodotti attivi appena sono pronti, poiché dovrò fare attenzione comunque, perché non stare attento a in questo modo, che probabilmente può comunque infliggere il minor danno tra 1 e 2. Thx
John Sonderson

3.) è stabile, ripetibile e basato su file - il rovescio della medaglia è che richiede un lavoro maggiore da configurare.
Kristof a Fooman il

1

C'è un mageploy che potrebbe risolvere anche questo problema.


Per ora, nessuno a mageploy ha aggiornato il suo sito web. Si afferma ancora che è solo per Magento 1.7.0.2
Max

1

Esistono strumenti di database come Quest Toad (ora di Dell) Toad per MySQL. Questo strumento di gestione del database ha funzionalità di confronto di dati e strutture che è possibile utilizzare per visualizzare le modifiche tra due database. Conserva i backup (o git commit) delle versioni del database che desideri confrontare e voilà. C'è anche un generatore di script per sincronizzare i due.


1

Abbiamo risolto questo problema creando un DB remoto per gli sviluppi locali e di gestione temporanea da leggere / scrivere. Aiuta davvero con tempo ed efficienza; non più clonazione, caricamento del DB nell'ambiente di tutti.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.