Лучшие практики развертывания database.yml - PullRequest
21 голосов
/ 26 апреля 2011

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

Я использую Capistrano для развертывания.

Ответы [ 3 ]

17 голосов
/ 26 апреля 2011

В настоящее время я храню общую папку с именем shared, которая находится за пределами моих папок deply_to.Я храню свой файл database.yml и другие конфигурационные файлы, и у меня есть заглушка в шапку для их проверки во время развертывания.Вот моя простая задача для копирования:

after "deploy:update_code","deploy:config_symlink"

namespace :deploy do

  task :config_symlink do
    run "cp #{shared_path}/../../shared/database.yml #{release_path}/config/database.yml"
  end
end
9 голосов
/ 28 марта 2013

Мой сценарий развертывания ломался с помощью ловушки after "deploy:update_code", потому что этот шаг, похоже, уже пытался получить доступ к БД. Итак, я делаю:

before "deploy:assets:precompile", 'deploy:symlink_shared'

namespace :deploy do

  task :symlink_shared do
    run "ln -nfs #{shared_path}/config/database.yml #{release_path}/config/database.yml"
  end
end
4 голосов
/ 12 марта 2015

Я довольно долго бился об этом, и нашел более простое решение для Capistrano 3 .Надеюсь, это поможет этим.

Я не мог всю жизнь заставить команды «выполнить» или «выполнить» работать в моем файле deploy.rb.Как выясняется, в Capistrano 3 вы должны поместить файл database.yml в папку deploy_directory / shared.Затем, в своем файле deploy.rb, включите файл в переменную connected_files, и он автоматически получит символическую ссылку на тот же путь во время развертывания.

Вот пример:

Для начала я неНе проверять database.yml в системе контроля версий.Мой database.yml находится здесь, на производственном сервере:

var / www / myapp / shared / config / database.yml

В моем deploy.rb я добавил эту строку

set :linked_files, %w{config/database.yml}

Во время развертывания capistrano автоматически создает символическую ссылку на файл:

var / www / myapp / current / config / database.yml

Надеюсь, что это поможет другим там,Я действительно сегодня бился головой об стену.

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