2015-05-29 1 views
0

У меня возникли проблемы с обнаружением того, что это первая попытка развертывания после загрузки экземпляра сервера. Мне нужно запустить команду rake db:seed только в первый раз, чтобы установить пользователей по умолчанию и другие данные в базе данных. Я понятия не имею, возможно ли это.Развертывание машинного зала: как обнаружить в deployhooks, что его первая попытка выполнить «rake db: seed»

может кто-нибудь помочь мне, пожалуйста

ответ

1

Лучший способ выяснить это путем отправки --extra-deploy-hook-options во время выполнения команды развертывания и проверки в after_migrate.rb если config[:initial] присутствует или нет. Команда будет выглядеть

ey deploy -e myapp_staging --config=initial:true 

after_migrate.rb крючок будет выглядеть так:

on_app_servers do 
    if config[:initial] == 'true' 
    $stderr.puts "Seeding the data" 
    run "cd #{config.release_path}" 
    run "bundle exec rake db:seed" 
    else 
    $stderr.puts "Skipping the Seeding process" 
    end 
end 

Для получения дополнительной информации ey help deployenter image description here

-1

Есть несколько способов, вы можете сделать это.

Наиболее простым было бы это сделать в db/seeds.rb и запросить, если данные уже существуют, которые в противном случае были бы перезаписаны при запуске.

Если это возможно, вы можете запустить rake db:seed в развертывающем крюке. Вы можете найти документацию по Deploy крючками здесь: https://support.cloud.engineyard.com/hc/en-us/articles/205407008-Use-Ruby-Deploy-Hooks

+0

на самом деле я знаю о посеве .. Я хотел бы знать, если я мог бы обнаружить внутри разломов, если эта попытка развертывания является первой, так что посев происходит только при необходимости #bastilian – illusionist

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