Ruby on rails 厨师长:数据库迁移未在应用程序配方中运行

Ruby on rails 厨师长:数据库迁移未在应用程序配方中运行,ruby-on-rails,chef-infra,chef-recipe,Ruby On Rails,Chef Infra,Chef Recipe,我使用的是application和application_ruby配方。我用migrate'true'这样定义我的应用程序: application 'railsapp' do owner 'vagrant' group 'vagrant' path '/home/vagrant/railsapp' revision 'master' repository 'git@github.com:rohshall/railsreadings.git' migrate true

我使用的是application和application_ruby配方。我用migrate'true'这样定义我的应用程序:

application 'railsapp' do
  owner 'vagrant'
  group 'vagrant'
  path '/home/vagrant/railsapp'
  revision 'master'
  repository 'git@github.com:rohshall/railsreadings.git'
  migrate true
  rails do
    bundler true
    database do
      host 'localhost'
      username mysql_connection_info[:username]
      password mysql_connection_info[:password]
      database 'railsreadings_production'
      adapter 'mysql2'
      encoding 'utf8'
    end
  end
  unicorn do
    worker_processes 2
  end
end
但是,我没有看到任何迁移正在运行。我认为这是因为应用程序\uRuby一旦运行就会删除它。但是,在我的例子中,数据库用户凭据出现问题,迁移没有成功。除了手动运行迁移,还有什么方法可以让它运行吗

ruby_block "remove_run_migrations" do
    block do
      if node.role?("#{new_resource.name}_run_migrations")
        Chef::Log.info("Migrations were run, removing role[#{new_resource.name}_run_migrations]")
        node.run_list.remove("role[#{new_resource.name}_run_migrations]")
      end
    end
end

我想我遇到了同样的问题,在声明了migration命令之后,它确实起了作用。所以像这样:

application 'railsapp' do
  owner 'vagrant'
  group 'vagrant'
  path '/home/vagrant/railsapp'
  revision 'master'
  repository 'git@github.com:rohshall/railsreadings.git'
  migrate true
  migration_command "bundle exec rake db:migrate"
  rails do
    bundler true
    database do
       host 'localhost'
       username mysql_connection_info[:username]
       password mysql_connection_info[:password]
       database 'railsreadings_production'
       adapter 'mysql2'
       encoding 'utf8'
    end
   end
  unicorn do
    worker_processes 2
  end
end

你找到解决办法了吗?请不要忘记将答案标记为正确!:)