2010-03-10 70 views
2

我做了2個應用程序,應用程序A和應用程序B.應用程序A的唯一目的是讓用戶註冊和App B的目的是採取選擇用戶從應用程序發送一個電子郵件他們。由於App A & B是獨立創建的&託管在2個獨立的Heroku實例中,因此App B如何訪問App A中的用戶數據庫?有沒有辦法將某些相關的行從應用程序A推送到應用程序B?2個Rails應用,1個數據庫(使用Heroku的)

+0

我不知道,如果[活性資源(http://railscasts.com/episodes/94-activeresource-basics )會幫助你在這裏。 昂貴的選擇將使用mongohq作爲您的數據庫 - 它與heroku我很好地工作 - 我會告訴 - 我想未來,heroku會給你更多的權力在數據庫 – stephenmurdoch 2010-03-10 00:38:59

+0

這聽起來像它反對英雄術語條款服務。不允許使用多個實例規避免費計劃限制。 – 2011-05-10 18:47:50

回答

4

目前還沒有Heroku的應用程序之間共享數據庫的方式。

您可能能夠使用Amazon RDS附加運行一個專門的MySQL實例。

另一種方法是將要創建一個API和應用程序之間的推送數據。您可以運行後臺進程來將數據推入或推出。

+0

感謝Toby,我一直在想API會是創建這個最好的方法。唯一的問題是,我不知道如何創建一個API。任何好的在線指南? – 2010-03-10 05:42:12

+1

查看使用ActiveResource - 您可以讓您的控制器接受並生成XML,然後將其綁定到模型。工作得很好。 – 2010-03-10 06:06:55

-3

你也許可以,如果你使用模式與PostgreSQL的做到這一點。

0

Heroku的實際覆蓋您已經檢查在database.yml文件中,您可以通過使用驗證這個「殼的Heroku」命令,然後輸入cat config/databse.yml

他們做了一堆隨機的東西,每個應用程序使用。我不相信有可能阻止他們這樣做。

+0

我認爲它應該是「cat config/database.yml」 – pageman 2010-11-10 13:52:39

2

所以修修補補有點四周,下面沒有和它的工作

prompt$ heroku console 
Ruby console for your-app.heroku.com 
>> dbconfig = YAML.load(File.read('config/database.yml')) 
=> {"production"=>{"encoding"=>"unicode", "port"=>5432, "adapter"=>"postgresql", "username"=>"xxxxxxxxxxxxxx", "database"=>"xxxxxxxxxxxxx", "host"=>"kklasfdsfjsfdsfsd.fsdf.dsfdsf", "password"=>"xxxxxxxxxxxxxxxxxx"}} 
puts dbconfig.to_yaml 
--- 
production: 
    encoding: unicode 
    port: 5432 
    adapter: postgresql 
    username: xxxxxxxxxxx 
    database: xxxxxxxxxxxxxxx 
    host: ec2-50-2323kskdsakd231.amazonaws.com 
    password: xxxxxxxxxxxxxx 

然後複製並粘貼YAML爲其他數據庫

連接和它的作品!爲了我!!!

1

我正在研究這個以及我注意到它似乎像現在可以實際做到這一點。

參見:http://newsletterer.heroku.com/2011/07(「你知道嗎?」在底部)

基本上你建立一個應用程序,檢索應用程序數據庫URL以及URL添加到其他應用程序的配置,如下所示:

$ heroku config | grep DATABASE_URL --app sushi 
DATABASE_URL => postgres://lswlmfdsfos:[email protected]/ldfoiusfsf 

然後,設置新的應用程序,以這個值DATABASE_URL:

$ heroku config:add DATABASE_URL=postgres://lswlmfdsfos:[email protected]/ldfoiusfsf --app sushi-analytics 
Adding config vars: DATABASE_URL => postgres://lswlm...m/ldfoiusfsf 
Restarting app... done, v74. 

這就是它 - 現在這兩個應用將共享一個數據庫。

我還沒有嘗試過這個,但我正準備嘗試一下,因爲我也在考慮將現有應用分成兩個應用。讓我們希望這真的有效!

2

您可以將同一個共享的PostgreSQL數據庫上,由shared-database:5mb免費附加在Heroku上給出了幾個實例的Heroku。

在您擁有數據庫,類型實例:

$ heroku config 

這會出現很多的設置,在其中你會看到這樣的事情:

DATABASE_URL => postgres://fbksgiuqlv:[email protected]/fbksgiuqlv 

這是您的實例將使用的數據庫連接字符串。

然後在其他實例中,通過鍵入覆蓋DATABASE_URL配置變量:

$ heroku config:add DATABASE_URL=your_new_connection_string 
相關問題