Приложение Capistrano Rails SQLite3 Не удается открыть базу данных

Мне удалось развернуть приложение Rails с Capistrano на сервере под управлением NGinx & Passenger. При развертывании я получал сообщение "Извините, что-то пошло не так" и был довольно смущен, так как рабочий журнал был пустым. Затем я переключил rails_env в development в моем NGinx Conf & теперь я получаю:

SQLite3::CantOpenException

unable to open database file
Rails.root: /www/testcap/releases/20120407015032

Я вошел на сервер, в current папка внутри testcap (который я считаю символические ссылки на последний выпуск) и побежал rake db:create, однако файлы БД существуют. Посмотрев в приложении db папка я вижу как development.db & test.db,

Если я бегу rails s -e production и затем перейдите на myurl.com:3000 приложение работает совершенно нормально, что странно, и это также работает нормально, когда я запускаю rails s -e development тоже.

Я в полной растерянности относительно того, что проблема может быть здесь. Я уверен, что это должно быть относительно очевидной проблемой, возможно, с capistrano? Я все еще новичок в этом, поэтому я вполне мог пропустить что-нибудь, но поиск в Google до сих пор был бесплодным.

Единственное, о чем я могу думать, это то, что я ничего не имею в отношении баз данных в моем config/deploy.rb? Однако я не смог найти никаких руководств в сети, чтобы помочь до сих пор.

Заранее спасибо за помощь:)

Джек.

1 ответ

Решение

Благодаря комментариям от Adam P & Ben L выше, мне удалось продвинуться в этом вопросе. Это руководство также решило мою проблему.

Я следовал за шагами в этом руководстве выше и в моем database.yml файл, который я изменил путь к production дБ от:

`db/production.sqlite3`

к

`/www/testcap/shared/db/production.sqlite3` 

(например, абсолютный путь)

Затем я добавил это к моему config/deploy.rb:

role :db, "{my vps IP}", :primary => true

На своем VPS я зашел в nginx conf и удалил строку rails_env development (Пассажир затем устанавливает его production по умолчанию).

А потом побежал cap deploy с последующим cap deploy:migrate, который работал, и я получаю приложение отображается при посещении URL.

Я надеюсь, что это может помочь кому-то в будущем застрять в той же проблеме:)

Джек.

Другие вопросы по тегам