2012-05-01 60 views
2

我在Heroku上有兩個應用程序,我希望他們使用相同的專用數據庫。問題是,這個新的應用程序有相同的模型/表比另一個。Heroku上兩個應用程序之間的專用數據庫共享

我的問題是:

  • 我應該更改名稱的新的應用程序中的表?

  • 如果是的話,我的模特名字怎麼樣?是否可以使用不同名稱的表格映射模型? (如User模型與new_user表而不是user)。

如何做到這一點有什麼好建議將不勝感激。

謝謝!

回答

2

一般來說,這可能不像看起來那麼好。 Rails旨在假設它對數據庫有100%的控制權。

即使您能夠將表格分離並且不會發生碰撞,您仍然會對schema_migrations表格帶來挑戰。該表包含所有rails的遷移,並且包含兩個應用程序的所有遷移記錄的組合。例如,當您嘗試運行rake db:rollback或其他rake命令時,這會混淆應用程序。

您的schema.rb文件可能會在兩個應用程序之間失去同步,也可能存在問題。

我建議你看看你想共享數據庫的原因,看看是否有其他方法來完成你正在嘗試做的事情。例如,您可以考慮使用Active Resources來安全地連接應用程序。

+0

嗯好的我明白了。但我認爲可以爲一個數據庫創建多個模式,以便最終'schema_migrations'能夠被正確複製? –

+0

對於'Active Resources',假設我希望其他應用程序訪問的數據與我的舊應用程序相同?但在我的情況下,我不希望他們共享相同的數據... –

+0

是不是想讓單個數據庫服務器運行,但不介意在單個服務器中有多個「數據庫/模式」? –

相關問題