2

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
4

1 に答える 1

1

移行コマンドを宣言した後、同じ問題に遭遇したと思いますが、うまくいきました。このように:

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
于 2013-08-31T10:04:56.420 に答える