web-dev-qa-db-fra.com

Comment préparer au mieux le développement d'une équipe bi-côtière composée de deux personnes?

Je travaille avec un autre membre de l'équipe et ils résident dans un autre État américain. Nous travaillons à la conversion d'un site de commerce électronique statique existant en un site Wordpress.

Je souhaite disposer d’une installation DEV de Wordpress afin que nous puissions y accéder facilement. Je vais faire la majorité du codage. Il aidera avec du HTML/CSS et beaucoup de travail lié aux données. Entrez manuellement les éléments ou déterminez une méthode d’importation.

Voici les options que j'ai réfléchies et il est logique de choisir l'option 2.

Option 1

  • Installer Wordpress sur mon ordinateur portable
  • Installer la base de données sur mon ordinateur portable
  • Configurer mon routeur pour autoriser les requêtes HTTP entrantes et les rediriger vers mon ordinateur portable
  • Lorsque nous souhaitons déployer sur PROD, suivez les étapes pour déplacer le code sur le serveur, vider la base de données et l'importer dans la base de données sur le serveur.

L'inconvénient est que, si j'éteins mon ordinateur portable ou si quelque chose ne va pas avec mon modem câble, mon partenaire ne pourra pas accéder à Wordpress.

Option 2

  • Installez Wordpress sur le serveur du domaine actuel dans un sous-répertoire, ex: domain.com/wordpress
  • Installer la base de données sur le serveur
  • Protégez le répertoire par un mot de passe pour arrêter quelqu'un ou un bot qui tente de s'y rendre
  • Lorsque nous voulons déployer, mettez à jour index.php

Y a-t-il d'autres options qui pourraient également fonctionner?

Contrôle de version

J'aurais aussi besoin d'un contrôle de version. Je pourrais mettre l'installation sous SVN.

Comment les gens contrôlent-ils les bases de données avec le code? Idéalement, ils devraient être synchronisés.

4
milesmeow

Je pense que vous devriez choisir l'option n ° 3 ; Selon mon expérience, l’une ou l’autre des deux options suscitera des chagrins. Vous finirez par écraser les modifications apportées et les autres problèmes.

Option n ° 3

Vous configurez tous les deux des environnements de développement locaux et vous utilisez un référentiel Subversion pour synchroniser les éléments. J'utilise un compte gratuit sur Unfuddle avec vous donne deux identifiants de connexion et des référentiels Subversion, ainsi qu'un système de gestion des tickets et un suivi des tâches et des jalons. Unfuddle fonctionne bien pour moi, mais bien sûr, il existe de nombreuses autres options. Unfuddle est celui que je connais et qui fonctionne bien pour moi.

Comme pour la base de données , il est très difficile de gérer les bases de données dans le contrôle de source. Ce que vous devez vraiment faire, c'est écrire des scripts qui reconstruisent votre base de données à partir de zéro, puis les version. Ironiquement, je travaille exactement là-dessus pour demain et j’ai posé une question dans l’espoir de trouver de l’aide mais j’ai plutôt l’impression que je fais tout moi-même, alors je documente ce que je fais dans une réponse. Vous pouvez lire à ce sujet ici:

Alors que la question/réponse ci-dessus parle de l'initialisation d'une nouvelle base de données en utilisant des aspects standard, vous pourriez en fait faire la même chose avec les données existantes, mais ce serait simplement plus de travail.

Jusqu'ici, dans mon développement, j'ai toujours été capable de faire simplement une mise à niveau du chariot élévateur de la base de données mais j'arrive au point qu'il me faudra gérer les données existantes. Il semble donc qu'avec le temps, je construirai des outils pour exporter des données vers des scripts et/ou des fichiers où je pourrai facilement fusionner un nouveau travail avec des données actuelles. On dirait que vous avez besoin de la même chose. Espérons que d’autres viendront et que nous pourrons tous nous attaquer à ce problème; comme on dit: "Beaucoup de mains font un travail léger."

Malheureusement, ma réponse n’est pas simple en ce qui concerne la base de données mais, autant que je sache, cela a toujours été un problème pour le déploiement de systèmes liés à la base de données et les scripts que vous pouvez tester et soumettre au contrôle de version sont vraiment le seul moyen connu de le gérer. .

6
MikeSchinkel

J'opterais pour l'option 2, sauf que je ne pense pas que simplement passer du développement à la production soit une bonne idée.

Mappez quelque chose comme beta.domain.com (si vous le pouvez) avec une base de données séparée et travaillez avec les choses là-bas. Une fois terminé, transférez les fichiers et la base de données sur le site de production.

2
Rarst

Vous recherchez essentiellement une mise en scène. Ce n'est pas quelque chose avec lequel Wordpress est très bon, mais comme c'est PHP et MySQL, il existe quelques outils disponibles à côté de Wordpress qui peuvent vous aider:

https://stackoverflow.com/questions/432162/does-anybody-have-a-development-staging-deploying-workflow-with-php-mysql

La mise en scène signifie fondamentalement ce que Mike a déjà décrit, mais elle ajoute du sucre. Je recommande fortement quelque chose comme un système de compilation pour exécuter des choses avant la publication. Surtout avec les applications basées sur Wordpress, sinon attendez-vous à beaucoup de travail manuel.

Plus tôt vous commencez à automatiser des tâches (c'est quelque chose que je dois aussi me rappeler assez souvent), plus vite vous pourrez décoller.

1
hakre

Certainement l'option 2.

juste un mot sur le contrôle de source, GIT ne serait-il pas plus utile avec une meilleure gestion des branches?

0
Mild Fuzz