Вопрос

Когда я читал о Rails и играл с ним в прошлом году, одним из инструментов, который произвел на меня самое большое впечатление, был Rake.Система управления версиями базы данных, которая обеспечивает идентичность всех баз данных разработки, интегрированных прямо в сборку... что-то подобное сделало бы жизнь намного проще (и безопаснее)!

Однако одна вещь, которую я не смог понять:Как перенести эти изменения на рабочие серверы, если у вас фактически нет доступа к производственным серверам?У нас есть несколько серверов по всей стране, на которых приложение устанавливается/обновляется с помощью установочного пакета.

Примечание:Этот вопрос больше касается стратегии, чем конкретных технологий Rails/Rake.Мы не используем рельсы, мы используем .Net.Но если я смогу разобраться в этом сценарии публикации, похоже, есть несколько инструментов. Migratordotnet — один из них это могло бы позволить нам сделать что-то подобное.

Это было полезно?

Решение

Как вы, вероятно, знаете, стандартный способ выполнения миграции в Rails: Капистрано.У него есть задача развертывания: миграции, которая запускает миграцию на удаленных серверах с использованием ssh.

Возможно, вы сможете адаптировать Capistrano так, как вам хочется.По сути, это гибкий способ запуска команд на группах удаленных серверов.Вам необходимо установить Ruby на машине, которую вы развертываете. от чтобы использовать его, но не на машинах, которые вы развертываете к.

Лучшим вариантом может быть создание специальной задачи Capistrano для загрузки файла setup.exe, запуска его, а затем запуска миграции (возможно, с использованием Migrator.NET).

Другие советы

Возможно, вы сможете использовать что-то вроде SQL-сравнение Red Gate создавать сценарии сравнения схем, которые позволят автоматизировать процесс обновления базы данных.Я использовал этот инструмент вручную для внесения таких изменений и легко смог создать программу, которая будет запускать эти обновления как часть процесса обновления.Однако если бы я собирался автоматизировать это, я бы спроектировал что-то, что позволило бы мне проверить, какая версия схемы существует, и запустить необходимые сценарии в правильном порядке, чтобы получить желаемую версию.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top