2014-01-15 3 views
1

Вопрос довольно простой, но я не могу найти какую-либо документацию на него:Зеркальные конкретные таблицы в PostGreSQL

Как я могу отразить конкретные таблицы из базы данных в другую?

Основная идея, имеющие двойные базы данных, которые разделяют только определенные таблицы между ними

Любые советы будут оценены! Если PostgreSQL не может этого сделать, есть ли еще RDBMS? Спасибо заранее!

EDIT: Поэтому я хочу, чтобы сделать это, чтобы разделить «произвольные» данные через две баз данных с использованием Джанго, не теряя надлежащую ссылочную целостность. Например:

Предположим, у нас есть клиенты, продукты и таблицы продаж. Мы хотим, чтобы делили наш клиент и базу продуктов между двумя компаниями, но не наши продаж. Это может быть распространено на любую конкретную ситуацию (акции акций , но не клиенты, пользователи, но не разрешения и т. Д.). Поэтому я подумал, что самым простым решением для обмена конкретными таблицами между базами данных было решение . Если есть лучший подход к проблеме, не стесняйтесь поделиться своим опытом ! Заранее спасибо

+0

Вы можете сделать это с помощью Slony (инструмент репликации для Postgres) –

+0

Простейшим решением является использование разных схем в одной базе данных. Гораздо проще, чем двойные базы данных. Это [этот вопрос] (http://stackoverflow.com/questions/1152405) и другие. –

+0

Да, похоже, но django еще не поддерживает схемы. – Alvaro

ответ

5

Есть несколько возможностей:

  • Master/Мастер репликации (Bucardo), Master/Slave репликации (Слоны)

  • Использование внешних оберток данных - вы можете получить доступ к любой таблице из других баз данных. 9.2 обеспечивают комфорт FDW только для чтения драйвер, 9.3 содержит чтения/записи драйвер ИДП

 
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; 

ИДП, вероятно, самое простое решение, как для обмена данными.

+0

Bucardo выглядит интересным для моего прецедента, так как единственное, что нужно сделать django, это использовать другое база данных для запросов – Alvaro

Смежные вопросы