2009-03-28 11 views
0

En lisant et en jouant sur Rails l'année dernière, l'un des outils qui m'a le plus impressionné a été Rake. Un système de gestion de version de base de données qui garde tout le droit intégré de dev db dans la construction ... quelque chose comme ça rendrait la vie tellement plus facile (et plus sûre)!Stratégie de rake, implémentation de DotNet

Cependant, l'une des choses que je n'ai pas été capable de comprendre: Comment déplacez-vous ces changements à vos serveurs de production lorsque vous n'avez pas réellement accès aux serveurs de production? Nous avons plusieurs serveurs à travers le pays où l'application est installée/mise à niveau par un package d'installation.

Remarque: Cette question concerne plus la stratégie que les technologies spécifiques à Rails/Rake. Nous n'utilisons pas de rails, nous utilisons .Net. Mais si je peux comprendre ce scénario de publication, il semble y avoir plusieurs outils Migratordotnet being one qui pourraient nous permettre de faire quelque chose de similaire.

Répondre

1

Comme vous le savez probablement, la façon standard d'exécuter des migrations en production est Capistrano. Il dispose d'une tâche deploy: migrations qui exécute les migrations sur des serveurs distants à l'aide de ssh.

Vous pourriez être en mesure d'adapter Capistrano pour faire ce que vous voulez. C'est essentiellement un moyen flexible d'exécuter des commandes sur des groupes de serveurs distants. Vous devez avoir installé Ruby sur la machine que vous déployez de afin de l'utiliser, mais pas sur les machines que vous déployez à.

Votre meilleure option peut être d'écrire une tâche Capistrano personnalisée pour télécharger setup.exe, l'exécuter, puis exécuter les migrations (peut-être en utilisant Migrator.NET).

+0

Voilà ce qui me manquait ... Je vais vérifier Capistrano. Merci! – Aaron

1

Vous pourriez utiliser quelque chose comme Red Gate's SQL Compare pour produire des scripts de diff de schéma qui vous permettraient d'automatiser le processus de mise à jour de la base de données. J'ai utilisé l'outil manuellement pour effectuer de tels changements et je pourrais facilement voir la création d'un programme qui exécuterait ces mises à jour dans le cadre du processus de mise à niveau. Si je devais l'automatiser, je créerais quelque chose qui me permettrait de vérifier quelle version du schéma était en place et d'exécuter les scripts nécessaires dans le bon ordre pour l'amener à la version désirée.

+0

Merci. J'ai un outil de comparaison et nous l'utilisons pour intégrer manuellement les changements. Mais Rake a vraiment pris la peine de monter ou descendre des versions, ce qui a suscité mon intérêt. – Aaron