ruby on rails - rails - Capistrano 3 no está ejecutando migraciones de rieles cuando se implementa
modelos en ruby on rails (3)
Quiero implementar para producir una aplicación en mi servidor local. Estoy usando capistrano 3.
este es mi archivo cap
require ''capistrano/setup''
require ''capistrano/deploy''
require ''capistrano/rvm''
require ''capistrano/bundler''
require ''capistrano/rails''
#require ''capistrano/rails/migrations''
#require ''capistrano/rails/assets''
# Loads custom tasks from `lib/capistrano/tasks'' if you have any defined.
Dir.glob(''lib/capistrano/tasks/*.cap'').each { |r| import r }
este es mi deploy.rb
# config valid only for Capistrano 3.1
lock ''3.1.0''
set :application, ''ImpresaZiliani''
set :repo_url, ''[email protected]:repos/impresaziliani.git''
set :branch, ''master''
# Default branch is :master
# ask :branch, proc { `git rev-parse --abbrev-ref HEAD`.chomp }
# Default deploy_to directory is /var/www/my_app
set :deploy_to, ''/home/francesco/impresaziliani''
# Default value for :scm is :git
set :scm, :git
set :deploy_user, "francesco"
set :rails_env, "production"
set :keep_releases, 5
namespace :deploy do
desc ''Restart application''
task :restart do
on roles(:app), in: :sequence, wait: 5 do
# Your restart mechanism here, for example:
# execute :touch, release_path.join(''tmp/restart.txt'')
end
end
after :publishing, :restart
after :restart, :clear_cache do
on roles(:web), in: :groups, limit: 3, wait: 10 do
# Here we can do anything such as:
# within release_path do
# execute :rake, ''cache:clear''
# end
end
end
end
set :rvm_ruby_version, ''2.1.1''
set :default_env, { rvm_bin_path: ''~/.rvm/bin'' }
SSHKit.config.command_map[:rake] = "#{fetch(:default_env)[:rvm_bin_path]}/rvm ruby-# {fetch(:rvm_ruby_version)} do bundle exec rake"
mi database.yml está bien ya que si ejecuto manualmente las migraciones en el servidor funciona, he intentado descomentar la línea de capistrano / rieles / migraciones y activos pero nada cambia: cuando lo implemento funciona bien hasta que se instala el bundler, entonces sin ninguna advertencia o error, salte al precompilador de activos y no ejecute migraciones.
¿Cómo puedo arreglar esto?
gracias
También debe hacer que el despliegue del usuario tenga el rol de db, como:
server ''you_ip_address'', user: ''user_name'', roles: %w{web app db}
Tanto Jude Calimbas como las respuestas de Hiveer son más precisas que la respuesta aceptada: la tarea de migración se ejecuta automáticamente como parte de la tarea de implementación.
Sin embargo, sus respuestas no explican el problema observado. Lo único que se me ocurre es que el archivo database.yml no está vinculado explícitamente en el archivo deploy.rb. Así que una línea como
set :linked_files, %w{config/database.yml}
Lo habría arreglado.
Sé que esta es una pregunta antigua, pero sería interesante saber más detalles del OP con respecto al problema y la solución.
rake db: migrate es automático por implementación en capistrano 3, solo tiene que descomentar #require ''capistrano / rails / migrations'' en su Capfile