Domanda

Sto sviluppando un negozio online con Magento. Il sito avrà un traffico elevato e avrà bisogno di una configurazione a due server, Test e Produzione.

La mia domanda è: come gestiscono i negozi online, in particolare Magento?

L'idea che ho avuto è:

  • Porta offline il sito di produzione
  • Database di test vuoto
  • Copia i dati dal database di produzione. (Forse)
  • Prova
  • Copia file e database nel sito di produzione

So che Magento offre un'opzione Enterprise, ma questo è uno script che vorrei scrivere da solo.

È stato utile?

Soluzione

Non dovresti aver bisogno di portare offline il sito di produzione.

Quello che vorrei suggerire (e dovresti essere in grado di scrivere questo) è sul sito di produzione per eseguire mysqldump -u root -ppassword nome_db > db_name.sql per produrre una copia del database. quindi esegui rsync (puoi ottenerlo sia per Linux che per Windows) nella directory dei file per sincronizzare con la macchina di prova tutti i file che vuoi copiare (immagini?)

Dopo aver eseguito qualsiasi test sul tuo prodotto che desideri spingere alla produzione, puoi farlo in 2 modi. uno dei due (e preferisco questo metodo) salva tutte le modifiche apportate al database in un file sql ed eseguilo sul sito di produzione e allo stesso tempo sincronizza tutti i file modificati. oppure puoi usare mysql per registrare tutte le query in un file, quindi riprodurle sul sito di produzione.

Meglio non abbattere il sito di produzione se non è necessario.

Altri suggerimenti

Vuoi master / slave mySQL con lo slave che legge dal database degli slave ma che scrive in diretta. Questo può essere impostato nel file local.xml. Dovresti essere in grado di eseguire rsync per i file, con --exclude per i file var / session e var / cache. Inoltre, potresti voler escludere il logo se si tratta di un server di sviluppo. Il logo può quindi essere modificato per dire "test" in modo da non confonderlo con Live.

In realtà, se si apportano modifiche al database, sarà necessario portare il sito offline (anche solo per pochi secondi) mentre si passa dal vecchio codice al nuovo codice ed si esegue lo script di migrazione del database.

Potresti essere interessato a saperlo

  • postgres ha DDL transazionale: se avvolgi il tuo script di migrazione in una transazione e qualcosa si interrompe nel mezzo, il tutto viene eseguito il rollback (inclusa la DROP TABLE)

  • postgres non ha bisogno di riscrivere la tabella per aggiungere una colonna (MySQL lo fa ed è piuttosto lento)

  • se usi MyISAM sei condannato per molte ragioni, una delle quali è che fare i backup porterà il tuo sito offline per alcuni minuti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top