2014-01-15 33 views
1

問題鏡子特定的表是相當簡單的,但我找不到它的任何文件:在PostgreSQL

我怎樣才能從鏡像數據庫到另一特定表?

的基本思想是具有

任何意見可以理解他們之間只共享特定的表雙胞胎數據庫!如果PostgreSQL無法做到這一點,是否有另一個RDBMS可以? 在此先感謝!

編輯: 我想這樣做是要共享使用Django兩個數據庫「任意」的信息,而不會失去正確的引用完整性的原因。 例如:

比方說,我們有一個客戶,產品和銷售表。我們想要 分享我們的客戶和兩家公司之間的產品基礎,但不是我們的 銷售。這可以擴展到任何特定的情況(股票 但不是客戶,用戶,但沒有權限等)。所以我認爲 最簡單的解決方案是共享數據庫中的特定表。如果 有更好的方法解決問題,請隨時分享您的 體驗!在此先感謝

+0

您可以使用Slony(Postgres的複製工具)做到這一點 –

+0

最簡單的解決方案是在同一個數據庫中使用不同的模式。比雙胞胎數據庫要容易得多。這[這個問題](http://stackoverflow.com/questions/1152405)等等。 –

+0

是的,它看起來像,但Django不支持架構 – Alvaro

回答

5

有幾種可能性:

  • 主/從複製(Bucardo這是),主/從複製(Slony聚)

  • 採用國外的數據封裝 - 您可以訪問任何表來自其他數據庫。 9.2提供舒適FDW只讀驅動器,9.3包含讀/寫FDW司機

 
CREATE EXTENSION postgres_fdw ; 
CREATE SERVER omega FOREIGN DATA WRAPPER postgres_fdw 
    OPTIONS (host 'localhost', dbname 'other_database'); 
CREATE USER MAPPING FOR pavel SERVER omega; 
CREATE FOREIGN TABLE oo (a int) SERVER omega; 

postgres=# EXPLAIN ANALYZE VERBOSE SELECT * FROM oo WHERE a BETWEEN 1 AND 100; 

FDW可能是最簡單的解決方案如何共享數據。

+0

Bucardo看起來很有趣我的用例,因爲django唯一需要做的就是使用不同的數據庫的查詢 – Alvaro