При попытке развернуть приложение Ruby on Rails с сервером Capistrano на Ubuntu 14, у меня есть проблема, файл базы данных sqlite3 всегда создается, но никакая схема не загружается, Capistrano развертывание всегда не выполняется. Когда я проверяю папку целевой базы данных на удаленном сервере, создается файл базы данных * .sqlite3, но он абсолютно пуст. Я попытался добавить задачу capistrano для загрузки схемы, но это не решило проблему.Ruby on Rails deploy Capistrano sqlite db no schema
desc 'Initial Deploy'
task :initial do
on roles(:app) do
execute 'cd #{current_path}; rake db:schema:load'
before 'deploy:restart', 'puma:start'
invoke 'deploy'
end
end
Кроме того, я заметил на местном уровне, что при вызове rake db:setup
базы данных схемы не загружена, я должен позвонить вручную rake db:schema:load
запустить приложение локально, но как я могу это сделать в рамках развертывания Капистрано?
несмотря на то, у меня есть еще один Ruby On Rails приложение, которое использует SQLite адаптер в производстве. Должна быть какая-то конфигурация или что-то, чтобы сохранить тот же файл базы данных production.sqlite3 во время каждого развертывания Capistrano. Я думаю, что решение состоит в том, чтобы перейти в ** текущую папку развертывания ** и запустить '$ rake db: create db: schema: load' оттуда. Поэтому во время следующего развертывания Capistrano файл базы данных «не будет заменен». Но я уже настроил Postgresql, это просто для сервера постановки и производства, чем для sqlite. –
Я думаю, что вы ищете, чтобы добавить сервер sqlite в linked_dirs. Это позволит хранить файлы sqlite во всех развертываниях. Но я согласен с тем, что использование postgres или mysql обычно является лучшим вариантом для prod. –