2010-06-01 4 views
3

Я знаю, это может показаться тривиальным некоторые, другие не видят смысла, однако, - для меня это было бы здорово:Рельсы Under Construction Page

Я пытаюсь выяснить, как быстро и эффективно совершать обновления к моему Rails-приложению, переключитесь на страницу стиля под конструкцией, когда я перезапущу приложение rails, а затем протестирую изменения, а затем, когда я буду счастлив, вернитесь к открытой публичной версии.

В данный момент я следую следующей схеме:

  • 1, вносить изменения к приложению
  • 2, совершать с помощью версии приложения для Mac в BeanstalkApp
  • 3, развернуть ревизию от BeanstalkApp к серверу
  • 4, войдите на сервер и перезапустить Apache
  • 5, подождите несколько секунд, а затем начинают перепроверить все а-OK

Если это помогает, я использую «Пассажир» по образцу VPS под ключ.

Заранее спасибо за любые советы и т.д.

Спасибо,

Дэнни

ответ

4

У вас есть несколько вариантов:

  • Создать поддомен для 'тестирования' и развернуть его на ваш производственный сервер, и когда он будет проверен, вы можете нажать его на место вашего производственного кода.

Вам нужно будет добавить субдомен в вашу запись DNS, чтобы указать тот же IP-адрес, что и ваш основной производственный сервер. Затем вам также нужно будет добавить новый VirtualHost с ServerName subdomain.host.com и DocumentRoot /data/host.com/testing/public, чтобы он загружал этот код.

  • Использование Пассажира создает приложение вложенных папок. См. Раздел 3.2 из http://www.modrails.com/documentation/Users%20guide.html#_deploying_a_ruby_on_rails_application, чтобы узнать, как добавить директивы RailsBaseURI для включения отдельных сайтов в подкаталоги. Это означает, что вы развертываете свой код в другом каталоге и создаете сим-ссылку.

Я лично сделал ОБА подходы. Я предпочитаю подход №1, но это личные предпочтения и уровень доступа к вашим хостам.

+0

Спасибо, Мф. Поскольку это VPS-сервер, у меня есть полный контроль - не всегда хорошая вещь! Если бы я пошел на первый вариант, создал субдомен для тестирования и т. Д., Предложили бы вы использовать базу данных public/live? Большинство проблем, с которыми я сталкиваюсь, во время миграции и т. Д., Поэтому я хочу попытаться ограничить время простоя приложения, пока я «проверю» все. – dannymcc

+0

Как вам, вероятно, придется мигрировать, я бы предложил базовую базу. Для этой цели вы можете использовать множество инструментов для дублирования базы данных (в зависимости от размера курса). Теоретически постановка должна быть только впереди или равна производству (на пути структуры). Если вам нужна частая синхронизация с производством, это целый другой проект :). Всегда лучше иметь отдельную базу данных, на которую вы тестируете, и как только все будет хорошо, чтобы вы надавили на продукт. (путем push я имею в виду повторную миграцию). –

+0

В настоящее время у меня есть локальная база данных sqlite3 и сервер постановки (чтение: производство) с базой данных mysql. Из-за разных типов баз данных я не смог дублировать контент. Я правильно читаю, что в идеале я должен был бы иметь абсолютно идентичные настройки, чтобы, если я запускаю rake db: migrate на этапе, он определенно будет работать над производственным? – dannymcc