2010-09-16 2 views
0

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

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

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

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

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

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

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

+0

Вместо того, чтобы использовать (огромный) список драгоценных камней из 'gem list', я просмотрел этот список grepping для драгоценных камней в моей кодовой базе и удалив те, которые не были использованы. Это привело к тому, что комплект оказался более управляемым. – jrdioko

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