2012-10-27 29 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

我應該補充一點,如果您需要任何幫助,我可以提供幫助。 –

相關問題