Geben Sie einer Datenbank einen Alias ​​in Postgres

9

Gibt es eine Möglichkeit, einer Postgres-Datenbank einen Alias ​​zu geben?

Im Wesentlichen benötige ich eine einzelne Datenbank, um mit zwei Namen arbeiten zu können, damit ich beispielsweise DB_ALPHA und DB_ONE abfragen kann und sie genau den gleichen Effekt haben. Ich habe dies in MySQL erreicht, indem ich einen symbolischen Link zur Datenbank in dasselbe Verzeichnis eingefügt habe. Ich konnte in postgres kein Äquivalent zu dieser Lösung finden.

Ich schätze die Hilfe! Vielen Dank!

Bigmattyh
quelle
Ich habe noch nie eine solche Anforderung gehört, aber vielleicht kann einer der Proxys nach dem Vorbild von pg_pool helfen?
Martin M.

Antworten:

6

Sie können keinen Alias ​​für ein Schema oder eine Datenbank erstellen, da der Schemaname / DBname intern als Primärschlüssel für die Tabellen pg_namespaceund verwendet wird pg_database.

Tempo
quelle
2

Die beste Lösung scheint PgBouncer zu sein . Sie können Verbindungen bündeln und von einer Datenbank zur anderen "umleiten" (auch auf einem anderen Host).

kontextifizieren
quelle
0

Nein, kannst du nicht. In PostgreSQL müssen Sie eine Verbindung zu einer einzelnen Datenbank herstellen, bevor Sie eine Abfrage ausführen können. In MySQL haben Sie nur eine Datenbank und viele Schemas (in der MySQL-Welt "Datenbanken" genannt). Sie können immer eine Abfrage in einer anderen "Datenbank" ausführen.

Wenn Sie dasselbe Setup in PostgreSQL wünschen, erstellen Sie einfach verschiedene Schemas in Ihrer Datenbank.

CREATE SCHEMA foo;
CREATE SCHEMA bar;
Frank Heikens
quelle
0

Benötigen Sie Schreibabfragen sowie Leseabfragen? Ich wäre versucht, die zweite Datenbank zu erstellen und dann einen symbolischen Link auf Datenbankverzeichnisebene zu verwenden, um auf das erste Datenbankverzeichnis zu verweisen. Das könnte in Ordnung sein, solange Sie nur Abfragen im zweiten System lesen. Sie könnten alle Arten von Korruption durch seltsame Probleme im Zusammenhang mit dem gemeinsamen Speicher bekommen, aber es wäre ein interessantes Experiment.

xzilla
quelle