Magento & Subversion (SVN) - l'Obtention d'un Environnement de Développement a Commencé?
Je suis en train de travailler sur la construction d'un site Magento, et c'est de loin le plus mammouth paquet que je n'ai jamais travaillé avec. J'ai décidé d'installer un serveur de développement et d'utilisation de Subversion pour le contrôle de version. Je suis en cours d'exécution pour un couple de barrages routiers et la nécessité de l'aide.
Ce que j'ai fait jusqu'à présent:
- Configurer l'hébergement web sur un ordinateur hôte qui utilise cPanel. Mon "Live" du site (mysite.com) va résider dans ~/public_html/.
- Créé un "Développement" sous-domaine (dev.mysite.com) qui pointe vers ~/public_html/dev/.
- Commencé un dépôt SVN à l'intérieur de ~/svn/. Mon repo contient des dossiers branches | tags | tronc.
- Importés fraîchement pas goudronnés magento tarball (v. 1.3.2.4) dans mon repo au tronc/magento.
- Créé deux bases de données. mysite_live et b. mysite_dev.
- Vérifié l'magento code de mon repo dans ~/public_html/dev/(dev.mysite.com)
- A couru la première Magento programme d'installation, qui rempli mon mysite_dev Db et a créé des fichiers de configuration (app/etc/local.xml est le seul que je connais, il y a peut être d'autres?).
Voici où je suis coincé:
Donc j'ai un entièrement fonctionnel Magento Installer dans mon dev de l'espace. Ce que je veux faire maintenant est d'obtenir mon site en direct déployé identique à mon site dev, comme un point de départ. Parce que la config est différente dans le app/etc/local.xml fichier; de plus Magento stocke la valeur de {{base_url}} à l'intérieur de la base de données, il n'est pas aussi facile que la mise à jour de mon svn trunk de mon site dev, puis de l'exportation/importation de la db.
Que je reçois plus loin sur la route avec cela, je veux qu'il y ait une voie directe à repousser tout sur mon site dev via SVN et à mon site en direct, avec en gardant les bases de données synchronisées à l'exception de la valeur de {{base_url}}. J'ai lu quelques messages du forum d'ailleurs que la référence à l'aide de svn:ignore pour éviter certains spécifiques à l'environnement des fichiers et des répertoires, mais ne sais pas comment le mettre en place sur mon site en direct et s'assurer que tout est correctement synchronisé.
Devrait je viens de récupérer une copie de la base de code de trunk/magentoo de mon repo de mon site en direct de l'espace, puis de lancer l'installation, puis définissez svn pour l'ignorer local.xml et supposons qu'ils sont identiques à l'exception des différences locales?
À ce point, je ne sais pas comment procéder, et je suis réticent à faire des conjectures dans le cas où il va devoir tout supprimer et recommencer à nouveau dans un avenir proche.
Comme une note de côté - j'ai aussi besoin de créer une "Démo", branche de la code pour un autre sous-domaine; pour montrer aux gens que la preuve de concept. Je vais probablement juste traverser le pont, quand je viens à lui. Peut-être que vous comprendrez mieux par le temps, j'arrive à cette tâche.
tl;dr version - comment puis-je gérer de développement de Magento&live code&de la Db avec SVN?
Merci à tous d'avoir pris le temps de lire et de répondre!
Vous devez vous connecter pour publier un commentaire.
Première chose à faire est de vérifier dans la version installée du programme. De cette façon, la copie du programme sur le repo est un travail que vous pouvez réellement utiliser. Ensuite, vous aurez besoin d'ignorer certains fichiers et répertoires de sorte que vous pouvez exécuter les autres environnements.
local.xml
est un bon exemple, mais aussi l'ensemble ignorer les suivants:Il y a probablement d'autres, mais ce devrait vous donner un bon départ. Si vous pensez que vous pouvez apporter des modifications à local.xml (vous pouvez), copie local.xml à l'échelon local.xml.dist et vérifier l' .dist version dans le repo. Lorsque vous commandez sur vos sites autres que vous aurez encore à faire les changements manuellement, mais il sera plus facile à suivre.
Pour la base de données, une pratique courante est de faire un mysqldump sur l'environnement de dev et de le garder dans le référentiel.
mysqldump -u user -p database > mysqldump.sql
Vous aurez à entrer votre mot de passe pour que l'on. Maintenant, la copie dans le repo est une copie complète du site. Pour configurer un autre environnement, vous aurez découvrez l'ensemble de la base de code et ensuite importer le fichier MySQL dans la base de données.
Rappelez-vous que lorsque vous faites cela (et de toute mise à jour de la base de données dans le repo et que vous souhaitez mettre à jour les modifications sur d'autres environnements), vous devrez modifier le {base_url} et {secure_url} dans la base de données. J'ai vu certains environnements où les développeurs ont créé des scripts pour effectuer cette opération automatiquement.
Enfin, essayez de faire toutes les modifications apportées à votre dev copie du site, car il aidera à garder votre base de données à synchroniser. Si vous apportez des modifications sur le live de la copie sans au moins aussi refléter dans dev, vous devrez probablement remplacer accidentellement plus tard avec l'un des décharges et puis demandez où votre fonctionnalité est allé.
Espère que ça aide. Si vous avez d'autres questions, laissez-moi savoir.
Grâce,
Joe
Je me rends compte que ce n'est pas exactement ce que vous avez demandé, mais veulent juste vous parler de mon installation car je pense que c'est pas pratique pour continuer à synchroniser le dev de la base de données de production une fois que vous allez vivre. Vous allez probablement vouloir apporter des modifications à votre dev base de données pour les tests qui ne sont pas toujours facile de revenir. La construction de votre contenu (produits, etc) dans l'environnement direct et parfois la copie de la base de données pour le développement, j'ai trouver fonctionne très bien.
Pour mon projet, j'ai construit mon environnement direct par l'installation de Magento à partir de zéro et viens de vérifier les répertoires à partir de SVN à ces points:
Toutes les personnalisations que vous faites doit être dans un de ces répertoires.
Je gère manuellement ce répertoire sur le serveur live:
Vous avez seulement besoin de créer un fichier de là, si vous créez un nouveau module vous-même.
J'ai écrit Module Gestionnaire De spécifiquement pour résoudre ces problèmes.
Je ne recommande pas de gestion des versions app/etc/local.xml de sorte que chaque environnement peut avoir différents identifiants de base de données, mais je ne le recommande versioning tout le reste à l'aide de modman. Aussi, je recommande d'avoir modman exécuter un script qui efface le cache de Magento et s'applique de la base de données mises à jour telles que l'on trouve ici.
Lorsqu'il est utilisé correctement, vous pouvez "svn commit" à votre coffre et lancez simplement "modman mise à jour-tout" sur d'autres environnements (y compris en direct) pour mettre à jour. Pour une sécurité mise à jour sur la version 1.4, vous pouvez exécuter
nous sommes à l'aide de différents local.xml les fichiers. Le nommage est à vous, mais local.xml.qa ou local.xml.vivre devoir de l'environnement spécifique de la chaîne de connexion est recommandé 🙂
une remarque: magento processus de tous *.des fichiers xml dans app/etc dossier donc être prudent dans l'appellation
Voici le script bash qui contribue à mettre en
svn:ignore
valeurs de propriétés pour un projet Magento.