Назад | Перейти на главную страницу

Назначение псевдонима базе данных в postgres

Есть ли способ присвоить базе данных postgres псевдоним?

По сути, мне нужна одна база данных для работы с двумя именами, чтобы я мог делать запросы, скажем, к DB_ALPHA и DB_ONE, и они имели бы точно такой же эффект. Я сделал это в MySQL, разместив символическую ссылку на базу данных в том же каталоге. Мне не удалось найти аналог этого решения в postgres.

Я ценю помощь! Спасибо!

Вы не можете создать псевдоним для схемы или базы данных, поскольку имя схемы / имя базы данных используется внутри как первичный ключ для таблиц. pg_namespace и pg_database.

Лучшее решение кажется PgBouncer. Он позволяет объединять и «перенаправлять» соединения из одной базы данных в другую (даже на другом хосте).

Нет, не можешь. В PostgreSQL вам необходимо подключиться к одной базе данных, прежде чем вы сможете выполнить любой запрос. В MySQL у вас есть только одна база данных и много схем (называемых «базами данных» в мире MySQL), вы всегда можете выполнить запрос в другой «базе данных».

Если вам нужна такая же настройка в PostgreSQL, просто создайте другую схему в своей базе данных.

CREATE SCHEMA foo;
CREATE SCHEMA bar;

Вам нужны запросы на запись, а также на чтение? У меня возникло бы соблазн попробовать создать вторую базу данных, а затем использовать символическую ссылку на уровне каталога базы данных, чтобы указать на первый каталог баз данных. Это может быть нормально, если вы придерживаетесь запросов только для чтения во второй системе; otoh вы можете получить всевозможные повреждения из-за странных проблем, связанных с общей памятью, но это будет интересный эксперимент.