2009-10-29 7 views
0

Je développe une boutique en ligne avec Magento. Le site sera très fréquenté et nécessitera une configuration à deux serveurs, Testing et Production.Configuration de deux serveurs pour la boutique en ligne (Magento)

Ma question est de savoir comment les magasins en ligne, en particulier Magento gérer cela?

L'idée que je HAD:

  • Prenez le site de production hors ligne
  • base de données Test vide
  • de données de copie de la base de données de production. (Peut-être)
  • test
  • fichiers Copier et base de données sur le site de production

Je sais que Magento offre une option d'entreprise, mais cela est un script que je voudrais écrire moi-même.

Répondre

0

Vous ne devriez pas avoir besoin de mettre le site de production hors ligne. Ce que je voudrais (et vous devriez être en mesure d'écrire ce script) est sur le site de production pour exécuter mysqldump -u root -ppassword db_name > db_name.sql pour produire une copie de la base de données. puis exécutez rsync (vous pouvez l'obtenir pour Linux et Windows) sur le répertoire de fichiers pour rsync à la machine de test tous les fichiers que vous souhaitez copier (images?)

Après avoir fait des tests sur votre que vous souhaitez pousser à la production, vous pouvez le faire de deux façons. soit (et je préfère cette méthode) enregistrer les modifications que vous avez apportées à la base de données dans un fichier sql et l'exécuter sur le site de production et en même temps synchroniser les fichiers modifiés. ou vous pouvez utiliser mysql pour consigner toutes les requêtes dans un fichier, puis les lire à nouveau sur le site de production.

Il est préférable de ne pas baisser le site de production si vous n'en avez pas besoin.

-1

En fait, si vous apportez des modifications à la base de données, vous devrez mettre le site hors ligne (même pour quelques secondes) pendant que vous passez de l'ancien code au nouveau code et exécuter le script de migration.

Vous pourriez être intéressés de savoir que

  • postgres a DDL transactionnel: si vous enveloppez votre script de migration dans une transaction et quelque chose se brise au milieu, est roulé le tout arrière (y compris DROP TABLE)

  • postgres n'a pas besoin de réécrire la table pour ajouter une colonne (MySQL fait et il est assez lent)

  • si vous utilisez MyISAM vous êtes condamné pour de nombreuses raisons, l'un d'entre eux étant que doi ng sauvegardes mettra votre site hors ligne pendant quelques minutes.

+0

Magento nécessite MySQL avec InnoDB, donc postgres n'est pas une option –

0

Vous souhaitez utiliser mySQL maître/esclave avec la lecture de l'esclave à partir de la base de données esclave mais en écrivant en direct. Cela peut être configuré dans le fichier local.xml. Vous devriez être capable d'exécuter rsync pour les fichiers, avec --exclude pour les fichiers var/session et var/cache. Aussi, vous pouvez --exclure le logo s'il s'agit d'un serveur de développement. Le logo peut alors être changé pour dire «test» afin de ne pas le confondre avec Live.