2008-11-09 10 views
0

Je travaille actuellement sur une application web qui utilise PHP et MySQL, mais je n'ai pas d'accès shell au serveur (je travaille déjà sur ce problème ...). Actuellement, j'ai le contrôle de la source avec Subversion sur mon ordinateur local et j'ai une base de données sur l'ordinateur local que je fais tous les changements. Ensuite, une fois que j'ai testé toutes les mises à jour sur mon ordinateur local, je déploie le site manuellement. J'utilise filezilla pour télécharger les fichiers mis à jour, puis vider ma base de données locale et l'importer sur le serveur de déploiement.Quelle est une bonne solution pour déployer un site PHP/MySQL via FTP?

De toute évidence, ma solution actuelle n'est pas idéale. Pour une chose importante, j'ai besoin d'un moyen d'éviter de copier mes fichiers .svn ... Est-ce que quelqu'un sait quelle serait la meilleure solution pour cette installation particulière? J'ai regardé un peu Capistrano et Ant, mais les deux semblent être un problème que je n'ai pas accès shell ...

Répondre

1

Vous pouvez faire une exportation de subversion (plutôt que la caisse) répertoire différent de votre copie de travail, il va supprimer tous les trucs svn pour vous

3

J'utilise Weex pour synchroniser un serveur via FTP. Weex est essentiellement un client FTP non interactif qui télécharge et supprime automatiquement les fichiers/répertoires sur le serveur distant. Il peut être configuré pour ne pas télécharger certains chemins (comme les répertoires SVN), ainsi que pour conserver certains chemins distants (comme les répertoires de journaux).

Malheureusement je n'ai aucune solution à portée de main pour synchroniser les bases de données MySQL et ...

Peut-être que vous pouvez connecter vos modifications de base de données dans « scripts patch SQL » (ou utilisez des décharges complètes), télécharger ceux avec Weex et appel un script PHP distant qui exécute les correctifs SQL par la suite.

2

J'utilise rsync dans la production, mais vous pouvez le faire:

Ajoutez une table de configuration dans votre site pour contenir le niveau de DB auquel vous êtes actuellement.

Lors du développement, stockez chaque ensemble de modifications SQL dans un seul fichier (j'utilise quelque chose comme delta_X-up.sql). Ceux-ci resteront dans votre SVN aussi bien. Ainsi, par exemple, si vous êtes à delta_5 et ajoutez un tableau entre la version actuelle et la nouvelle version, tout le SQL nécessaire sera mis dans delta_6-up.sql

Quand vient le temps de construire, exporter le repo au lieu d'utiliser une caisse. Cela vous permet d'ignorer tous les cryptages SVN qui se produisent car vous n'en aurez pas besoin en production.

Utilisez Weex pour pousser ces changements en production (ce serait j'utiliserais rsync mais vous n'avez pas cette option). Appelez un script distant qui vérifie votre DB de configuration pour voir à quel niveau delta vous êtes actuellement, parsez le répertoire avec vos fichiers delta_x-up.sql et voyez s'il y en a de nouveaux. S'il y en a, lisez-les et lancez le SQL à l'intérieur.

+0

Bonnes idées. Je pense que je vais les essayer. –

Questions connexes