CloudFoundryMicroでSinatraアプリを構築する練習をしています。このアプリはMySQLサービスを使用しています。Sinatraアプリから新しいデータベースを作成するにはどうすればよいですか。新しいデータベースは、データマッパーで構築したデフォルトのデータベースとは異なる情報を保持します
私は最初にmysql2gemを使おうとしました
require 'mysql2'
con = Mysql.new("#{hostname}", "#{username}", "#{password}", "#{dbname}")
rs = con.query("CREATE DATABASE #{$newDbName}")
con.close
上記のコードは私の開発者のマシンでうまく機能したので、クラウドで試してみようと思いました。ここで私は問題を抱えています:
require 'mysql2'
require 'json'
svcs = JSON.parse ENV['VCAP_SERVICES']
mysql = svcs.detect { |k,v| k =~ /^mysql/ }.last.first
creds = mysql['credentials']
user, pass, host, name = %w(user password host name).map { |key| creds[key] }
con = Mysql.new("#{host}", "#{user}", "#{pass}", "#{name}")
rs = con.query("CREATE DATABASE #{ $newDbName}")
con.close
アプリをプッシュして新しいデータベースを作成するプロセスを実行すると、アプリが「'dbsync/createdb.rb'をロード」しようとすると「内部サーバーエラー」が発生します。
誰かが私がこのエラーを受け取っている理由を説明できますか?または、この問題をさらにトラブルシューティングする方法