Портирование приложения Rails 2 на новый сервер - PullRequest
0 голосов
/ 16 сентября 2010

Я отправил еще пару вопросов во время этого процесса, но у меня есть лучшее представление о том, что я пытаюсь сделать, поэтому я решил спросить об этом.

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

Так что мне интересно, как это лучше всего сделать? Я могу поместить источник в мою систему контроля версий и настроить Capistrano и Passenger таким же образом, как они сейчас. Проблема в том, чтобы получить все драгоценные камни в одной и той же версии. Я слышал о замораживании Rails и замораживании драгоценных камней, но многие учебники по нему выглядят немного устаревшими. Безопасно ли замораживать драгоценные камни на работающем в данный момент производственном сервере, или я должен просто получить список драгоценных камней и их версий и вручную установить их на новом сервере, на который я портирую?

Редактировать : Я последовал предложению Тадмана и настроил Gemfile со всеми гемами и последними версиями, установленными на рабочем сервере, но теперь я попал в путаницу с версиями, например: 1009 *

Bundler could not find compatible versions for gem "ruby2ruby":
  In Gemfile:
    merb-action-args (= 1.0.8.1) depends on
      ruby2ruby (>= 1.1.9)

    ambition (= 0.5.4) depends on
      ruby2ruby (1.1.8)

На рабочем сервере иногда установлено до 4 версий одного и того же гема, но, похоже, Bundler хочет обрабатывать только одну версию каждой. Есть ли простой способ разрешить подобную ситуацию, или это возвращение к изучению заморозки драгоценных камней в производстве?

Редактировать 2: Я закончил удаление версий из всех драгоценных камней, кроме рельсов, и сделал bundle install. Пока, похоже, он работает, хотя не все версии точно совпадают.

1 Ответ

1 голос
/ 16 сентября 2010

Переход на Rails 3 может быть серьезной головной болью, но упаковать исторические версии драгоценных камней может быть значительно проще. В некоторой степени это облегчается с помощью bundler , где вы можете объявить конкретные версии, которые вам нужны в Gemfile для вашего приложения. Хотя этот метод де-факто используется в Rails 3, он не зависит от платформы и может использоваться в любой версии Rails в качестве механизма распространения.

Обычно вы можете определить версию драгоценных камней, используемых с gem list, как, если в config/environment.rb не указано иное, самая последняя версия выбирается автоматически. Список драгоценных камней легко преобразовать в Gemfile.

...