Как переместить схему Postgres с помощью файловых операций? - PullRequest
1 голос
/ 05 мая 2010

У меня есть схема schema1 в базе данных postgres A . Я хочу иметь копию этой схемы (модель + данные) в базе данных B под именем schema2 .

Какие у меня варианты?

Я сейчас: * dump schema1 из база данных A * sed мой путь через переименование схемы в дампе: schema1 становится schema2 * восстановление схема2 в база данных B

но я ищу более эффективную процедуру. Например, с помощью прямых файловых операций над двоичными файлами postgres.

Спасибо за вашу помощь

Джером Вагнер

1 Ответ

1 голос
/ 05 мая 2010

Во-первых, имейте в виду (как прокомментировали другие), что Postgresql и Mysql имеют разные идеи о том, что такое СХЕМА. В Postgresql (и в стандарте SQL) схема - это просто пространство имен внутри базы данных, которое вы можете использовать для определения имен объектов (аналогично каталогам и файлам); 'public' схема, которая используется по умолчанию для неквалифицированных имен). Таким образом, схемы связаны с организацией имен, а не с изоляцией: пока мы находимся внутри базы данных, объекты (таблицы, представления ...) из разных схем взаимно видимы; так что, например, представление может смешивать таблицы разных схем, или FK может ссылаться на другую схему. Напротив, объекты в разных базах данных являются изолированными (они совместно используют пользователей и группы), вы не можете объединять таблицы разных баз данных.

Дамп-восстановление - это единственный разумный способ копирования схемы из одной базы данных в другую. Тем не менее, из вышесказанного, это может быть небезопасно / невозможно, если схема зависит от других схем базы данных (это как если бы вы копировали классы пакета Java из одного проекта в другой). Я бы не мечтал о попытке скопировать двоичные файлы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...