33 votes

Meilleures pratiques pour le déploiement de Magento

Je suis à la recherche de la configuration d'un processus de déploiement pour un très personnalisé Magento site, et je me demandais comment d'autres personnes le faire.

Je vais mettre en place dev, UAT et les environnements de prod. Toutes les versions de Magento fichiers seront dans le contrôle de source (SVN). À ce stade, je ne peux pas voir les exigences pour la modification de la DB, donc les 3 bases de données sera gérée manuellement.

Plus précisément,

  • Comment faire une demande de Magento mises à niveau? (Individuellement dans chaque env, ou sur dev ensuite, rouler, ou tout simplement donner des mises à jour?)
  • Quels fichiers/dossiers ne laisser seul dans chaque environnement (p. ex. magento/app/etc/local.xml)
  • Ne vous limitez les développeurs à l'édition de fichiers/dossiers spécifiques?
  • Ne vous limitez les concepteurs de thème pour l'édition de fichiers/dossiers spécifiques?
  • Comment avez-vous gérer les modifications de base de données?

Designer Thème Des Fichiers/Dossiers

Les concepteurs peuvent limité à l'édition de l'dossiers suivants-

app/design/frontend/your_interface/your_theme/layout/
app/design/frontend/your_interface/your_theme/template/
app/design/frontend/your_interface/your_theme/locale/
skin/frontend/your_interface/your_theme/

L'Extension Des Fichiers De Développeurs/Dossiers

Les développeurs d'extensions pouvez modifier les éléments suivants dossiers/fichiers-

/app/code/local
/app/etc/modules/<Namespace>_<Module>.xml

Base de données de gestion de l'environnement

Comme le magasin de l'URL de base est stockée dans la base de données, vous ne pouvez pas simplement copier les bases de données entre les environnements. Les Options comprennent-

14voto

greg_robbins Points 410

Je recommande l'utilisation de git sur le SVN. Faciliter le branchement et la fusion signifie que tous ces points se fera plus en douceur pour vous.

L'application de mises à jour: Faire le dev. Faire une branche (c'est là que git brille vraiment), appliquer le patch fichiers ou mieux encore, sortez un nouveau Magento version et qu'il pointe vers votre ancienne base de données. Pas d'extensions encore. Ouvrir l'admin dans la nouvelle installation de Magento un espoir pour le meilleur. Mise à jour entre les versions mineures ne sera probablement pas un problème. Vous aurez probablement à réindexer après toutes les nouveautés installe. Faire un commit une fois que c'est stable, puis peu à peu amener dans la direction de vos extensions et de thèmes, de faire tout code ajustements, puis de faire un commit après chaque étape s'avère stable.

Dépendant de l'environnement des fichiers: .htaccess et app/etc/local.xml. Je fais une version distincte pour chaque: local.dev.xml, htaccess-dev local.staging.xml, htaccess-mise en scène local.production.xml, htaccess-production

...et puis faire softlinks pour chaque environnement:

ln -s htaccess-dev .htaccess
cd app/etc/
ln -s local.dev.xml local.xml

et ainsi de suite.

Restreindre l'accès à certains développeurs: je ne fais pas cela. Cependant, vous pouvez développer un de déployer la stratégie dans git, qui permet à un gestionnaire de publication de décider de ce qui va et ce qui ne fonctionne pas.

La gestion des modifications de base de données: C'est la partie la plus délicate. Nous venons d'utiliser mysqldump, de la production, et des ready-made "env-setup.sql" les fichiers pour chaque environnement. Quelque chose comme ceci (votre id peut varier):

UPDATE core_config_data SET value='http://magento.dev/' WHERE config_id IN (3,4);

J'ai l'habitude de ajouter un peu plus d'instructions qui va changer les passerelles de paiement sur des environnements de test, de changer les e-mails sortants, etc. La plupart de ces vous trouverez dans core_config_data.

Rappelez-vous que les modules habitude de faire leurs propres changements à la base de données, donc l'application bien faite module prend habituellement soin de lui-même. Dans tous les cas, ne jamais appliquer de non testé les changements de prod, toujours faire des "répétitions" sur le local et la mise en scène des environnements.

Vous pouvez obtenir le CMS (des pages et des blocs statiques) des données de la base de données par le dumping et le chargement de la cms_* tables à partir de quel que soit l'environnement de développement a été fait sur.

Bonne chance!

9voto

Rick J Points 2031

J'utilise les mêmes bonnes pratiques que pour n'importe quelle application web lors du développement de magento. J'évite aussi religieusement toute modification des fichiers de base (de nombreux documents sur le wiki de magento vous demandent de modifier les fichiers de base).

3voto

Felix Points 1

Vous pouvez éviter la manipulation de base de données (en allemand): http://blog.tudock.de/startseite/beitrag/2010/09/17/deployment-prozess-eines-magento-shops.html

3voto

dotjon Points 1614

Après de nombreux essais et erreurs, nous avons mis au point un flux de travail qui nous convient bien:

http://www.dhmedia.com.au/blog/perfect-magento-workflow-using-git

Inclut la gestion de la base de données, tout le code sous contrôle de code source (avec Git), les déploiements, les sites de transfert et de développement, plusieurs développeurs, plusieurs environnements, etc.

J'espère que cela aide quelqu'un!

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X