Question

Lors de la lecture au sujet et jouer avec Rails l'année dernière, l'un des outils qui ont fait la plus grande impression sur moi était Rake. Un système de versionnage de base de données qui maintient bien intégrée identique de dev db dans la construction ... quelque chose comme ça rendrait la vie beaucoup plus facile (et plus sûr)!

Cependant, l'une des choses que je ne l'ai pas été en mesure de comprendre: Comment déplacer ces modifications à 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 / mis à jour par un package d'installation.

Note: Cette question est plus sur la stratégie que Rails / Rake technologies spécifiques. Nous n'utilisons rails, nous utilisons .Net. Mais si je peux comprendre ce scénario publier, il semble y avoir plusieurs outils Migratordotnet être un qui pourrait nous permettre de faire quelque chose de similaire.

Était-ce utile?

La solution

Comme vous le savez sans doute, la manière standard Rails des migrations en cours d'exécution dans la production est Capistrano . Il a deploy. Tâche migrations qui exécute les migrations sur des serveurs distants en utilisant ssh

Vous pourriez être en mesure d'adapter Capistrano à faire ce que vous voulez. Il est essentiellement un moyen souple pour exécuter des commandes sur des groupes de serveurs distants. Vous devez avoir Ruby installé sur la machine que vous déployez 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 le fichier setup.exe, exécutez-le, puis exécutez les migrations (peut-être en utilisant Migrator.NET).

Autres conseils

Vous pourriez être en mesure d'utiliser quelque chose comme Red Gate SQL Comparer pour produire des scripts de schéma diff qui vous permettra d'automatiser le processus de mise à jour de la base de données. Je l'ai utilisé l'outil manuellement pour faire ces changements et pourrait facilement voir la création d'un programme qui relierait ces mises à jour dans le cadre du processus de mise à niveau. Si je devais automatiser, bien que, je conçois quelque chose qui me permettrait de vérifier quelle version du schéma a été mis en place et exécuter les scripts nécessaires dans le bon ordre pour mettre la version désirée.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top