2009-03-28 4 views
0

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

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

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

ответ

1

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

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

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

+0

Это то, чего мне не хватало .... Я проверю Капистрано. Благодаря! – Aaron

1

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

+0

Спасибо. У меня есть инструмент сравнения, и мы используем его для ручной интеграции изменений. Но Рейк действительно избавился от боли, двигаясь вверх или вниз, и это меня заинтересовало. – Aaron

 Смежные вопросы

  • Нет связанных вопросов^_^