Добавляет ли pg_restore или pg_dump операторы в схему? - PullRequest
1 голос
/ 22 марта 2011

У меня есть база данных, которой я пользуюсь с недавних пор. Я немного улучшил ее схему и хотел сравнить различия между новой схемой и старой схемой, поэтому я выкинул обе схемы и сделал diff. В старой схеме я вижу некоторые операторы «OPERATOR FAMILY», которые не видны в новой схеме. Если это имеет какое-либо значение, эти операторы 'OPERATOR FAMILY' относятся к пакету tsearch2 contrib для PostgreSQL (например: 'CREATE OPERATOR FAMILY gin_tsvector_ops' и т. Д.). Операторы 'OPERATOR CLASS', относящиеся к операторам tsearch2, присутствуют в обеих схемах. Кроме того, за всеми добавленными операторами «OPERATOR FAMILY» следуют операторы «OPERATOR CLASS» с тем же именем, хотя операторы «OPERATOR CLASS» находятся в обеих схемах.

Что действительно странно, так это то, что, когда я создаю базу данных с новой схемой, выкидываю ее схему с помощью pg_dump, восстанавливаю ее в другой базе данных с помощью pg_restore, а затем снова ее выгружаю - появляются операторы 'OPERATOR FAMILY'! Я grep'd каталог contrib, но я не могу найти какие-либо операторы 'CREATE OPERATOR FAMILY'.

У кого-нибудь был подобный опыт? Есть идеи, что могло бы быть введением этих заявлений?

1 Ответ

1 голос
/ 22 марта 2011

В ответ на ваш комментарий, я думаю, это вызвало миграцию версии PostgreSQL. В 7.2 tsearch2 был внешним модулем contrib, но в PostgreSQL 8.3 он был интегрирован в ядро. Таким образом, эти недостающие СЕМЬИ ОПЕРАТОРОВ, вероятно, происходят из pg_catalog в PostgreSQL 8.3 вместо вашей собственной схемы.

Но я думаю вы можете исправить это, используя скрипт contrib/uninstall_tsearch2.sql (обычно в /usr/share/postgresql-VER/contrib/), чтобы удалить его, а затем переустановить с помощью скрипта contrib/tsearch2.sql. Игнорируйте любые ошибки, которые вы получаете, они должны быть безопасными, так как вы не можете отбрасывать типы, которые вы используете в своих таблицах.

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