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
ただし、移行が実行されているようには見えません。application_ruby は一度実行すると削除されるためだと思います。ただし、私の場合、データベース ユーザーの資格情報に問題があり、移行が成功しませんでした。移行を手動で実行する以外に、移行を実行する方法はありますか?
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