Question

Je développe une boutique en ligne avec Magento. Le site sera très fréquenté et nécessitera une installation sur deux serveurs, les tests et la production.

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

L’idée que j’avais est la suivante:

  • Déconnecter le site de production
  • Base de données de test vide
  • Copier les données de la base de données de production. (Peut-être)
  • Test
  • Copier les fichiers et la base de données sur le site de production

Je sais que Magento propose une option Entreprise, mais j’aimerais écrire moi-même ce script.

Était-ce utile?

La solution

Vous ne devriez pas avoir besoin de déconnecter le site de production.

Ce que je supposerais (et vous devriez pouvoir écrire un script à ce sujet) est sur le site de production pour exécuter mysqldump -u root -ppassword nom_base > db_name.sql pour produire une copie de la base de données. Ensuite, lancez rsync (vous pouvez l’obtenir pour Linux et Windows) dans le répertoire des fichiers pour rsync à la machine de test les fichiers que vous souhaitez copier (images?)

Après avoir effectué les tests que vous souhaitez appliquer à la production, vous pouvez le faire de deux manières. soit (et je préfère cette méthode) enregistrez toutes les modifications apportées à la base de données dans un fichier SQL et exécutez-le sur le site de production, puis synchronisez à nouveau tous les fichiers modifiés. ou vous pouvez utiliser mysql pour consigner toutes les requêtes dans un fichier, puis les relire sur le site de production.

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

Autres conseils

Vous voulez mySQL maître / esclave avec l'esclave lisant dans la base de données esclave mais écrivant sur le live. Cela peut être configuré dans le fichier local.xml. Vous devriez pouvoir exécuter rsync pour les fichiers, avec --exclude pour les fichiers var / session et var / cache. Vous pouvez également vouloir exclure le logo s'il s'agit d'un serveur de développement. Le logo peut ensuite être modifié pour indiquer "test" afin que vous ne le confondiez pas avec Live.

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

Vous serez peut-être intéressé de savoir que

  • postgres a une DDL transactionnelle: si vous enroulez votre script de migration dans une transaction et que quelque chose se casse au milieu, tout est annulé (y compris DROP TABLE)

  • postgres n'a pas besoin de réécrire le tableau pour ajouter une colonne (MySQL le fait et c'est plutôt lent)

  • si vous utilisez MyISAM, vous êtes condamné pour de nombreuses raisons. L'une des raisons est que les sauvegardes prendront votre site hors ligne pendant quelques minutes.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top