2012-10-27 27 views
0

我正在练习在Cloud foundry micro上构建Sinatra应用程序。这个应用程序正在使用MySQL服务。我想知道如何从我的Sinatra应用程序创建一个新的数据库。新的数据库将认为是默认的数据库,这是我建立与数据映射器如何在Cloudry Foundry的Sinatra应用程序中创建新的MySQL数据库?

我第一次尝试使用mysql2宝石

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'“

任何人都可以解释为什么我得到这个错误?或者我可以如何进一步排查此问题

+0

你为什么要创建您的应用程序(独立的)数据库?应用程序这样做并不常见。 – GolezTrol

+0

另一个应用程序我正在尝试通过在线界面管理多个应用程序的概念(HTML表单) – Triggs

回答

1

您无权创建新的数据库。但是,如果您真的想这样做,您可以使用VMC gem连接到vcap/Cloud Foundry实例并创建一个新的MySQL服务,然后将其绑定到同一个应用程序。

看看在VMC代码库的注释示例代码在https://github.com/cloudfoundry/vmc/blob/master/lib/vmc/client.rb

+0

我应该补充一点,如果您需要任何帮助,我可以提供帮助。 –

相关问题