我正在练习在 Cloud Foundry micro 上构建 Sinatra 应用程序。这个应用程序正在使用 MySQL 服务。我想知道如何从我的 Sinatra 应用程序创建一个新数据库。新数据库将保存与我使用数据映射器构建的默认数据库不同的信息
我首先尝试使用 mysql2 gem
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'”时出现“内部服务器错误”
谁能解释我为什么会收到这个错误?或者我如何进一步解决这个问题