Де-капистрано приложение рельсы? - PullRequest
2 голосов
/ 12 января 2010

Я унаследовал сайт rails, который мне нужно развернуть (быстро!) На нашем веб-хосте, который является стандартным общим сервером * nix, который использует FastCGI для приложений rails. В прошлом я неоднократно работал с сайтами рельсов, но ни в коем случае не считаю себя экспертом.

Это конкретное приложение было разработано с использованием capistrano, с которым у меня нет опыта, и все, что я прочитал, наводит меня на мысль, что для правильного развертывания приложения потребуется настройка внешней учетной записи svn, среди прочего вещи, которые неосуществимы, учитывая наши временные рамки и ситуацию с хостингом.

Мой вопрос: каков наилучший способ быстро запустить и запустить это приложение без использования capistrano? Я получил вместе с файлами сайта дамп .sql, который я уже импортировал, и настроил config / database.yml для отображения правильных параметров производственной базы данных. Прямо сейчас запуск ruby script/console production выдает следующее сообщение об ошибке:

/home/user1/ruby/gems/gems/activesupport-2.3.3/lib/active_support/dependencies.rb:443:in `load_missing_constant':NameError: uninitialized constant ApplicationController

Спасибо за внимание!

Ответы [ 3 ]

1 голос
/ 12 января 2010

Как уже говорили другие, вы, вероятно, используете неправильную версию.

Рельсы переключены с app_controller на application_controller (или что-то подобное) в версии 2.1 или 2.2.

В этом случае вы можете выполнить задачу rake:

rake rails:update:application_controller

Это может помочь тебе.

Что касается капистрано. В вашем deploy.rb вы можете добавить параметр: deploy_via:

set :deploy_via, :copy
set :scm, :none

И он должен использовать копию, имеющуюся в вашем рабочем каталоге, для развертывания (нет необходимости в Subversion или любом другом контроле версий)

Copy обычно выбирает код из хранилища локально, а затем выгружает его на сервер, но также устанавливает для: scm значение none, это должно игнорировать это и просто (надеюсь) использовать вместо этого вашу рабочую копию.

1 голос
/ 12 января 2010

Все, что требуется от capistrano - это deploy.rb и Capfile, это не то, что вызывает вашу ошибку. Судя по всему, проблема в том, что вы используете версию gem rails, которая несовместима с вашим приложением. Знаете ли вы, с какой версией оно было разработано? Если это так, вы должны попытаться поставить каталог вашей направляющей на правильную версию.

Для развертывания, если вы используете FastCGI, вы можете просто загрузить файлы на хост и установить соответствующие разрешения, и вы должны быть готовы. В будущем вам может потребоваться перейти на более новую версию рельсов, используя capistrano и изменить свою среду на использование Apache passenger.

Надеюсь, это поможет.

0 голосов
/ 12 января 2010

Проблема, с которой вы сталкиваетесь, является несоответствием вашей установленной версии и версии, которую ожидает приложение. Посмотрите в config / environment.rb, Наверху вы увидите нечто, похожее на:

RAILS_GEM_VERSION = '2.3.4'

Вы должны убедиться, что версия rails, установленная на вашем компьютере, соответствует любой версии, объявленной в этом файле. Вы можете сделать это, запустив:

sudo gem install -v=X.X.X rails

где X.X.X соответствует тому, что было в вашей среде. Rb.

Jonnii предлагает вам "заморозить" ваши рельсы, включив весь код rails в ваш проект напрямую (что можно сделать, запустив rake rails: freeze: gems ПОСЛЕ того, как вы выполнили вышеуказанные шаги и получили правильные камни, установленные в первое место.) После того, как вы заморозили рельсы, вам больше не нужно устанавливать драгоценные камни на ваш сервер веб-сервера.

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...