Não é possível criar um alias para um esquema ou banco de dados, pois o Nome do esquema / DB é usado internamente como chave primária para as tabelas pg_namespace
e pg_database
.
Existe alguma maneira de dar um alias a um banco de dados postgres?
Essencialmente, eu preciso de um único banco de dados para operar com dois nomes, para que eu possa fazer consultas, digamos, DB_ALPHA e DB_ONE e eles terão exatamente o mesmo efeito. Eu consegui isso no MySQL, colocando um link simbólico para o banco de dados no mesmo diretório. Eu não consegui encontrar um equivalente dessa solução no postgres.
Eu agradeço a ajuda! Obrigado!
Não é possível criar um alias para um esquema ou banco de dados, pois o Nome do esquema / DB é usado internamente como chave primária para as tabelas pg_namespace
e pg_database
.
Não, você não pode. No PostgreSQL, você precisa se conectar a um único banco de dados antes de executar qualquer consulta. No MySQL você tem apenas um banco de dados e muitos esquemas (chamados de "bancos de dados" no mundo do MySQL), você sempre pode executar uma consulta em um "banco de dados" diferente.
Se você quiser a mesma configuração no PostgreSQL, basta criar esquemas diferentes em seu banco de dados.
CREATE SCHEMA foo;
CREATE SCHEMA bar;
Você precisa escrever consultas e ler consultas? Eu ficaria tentado a tentar criar o segundo banco de dados e, em seguida, usar um link simbólico no nível do diretório de banco de dados para apontar para o primeiro diretório de bancos de dados. Isso pode ser ok, desde que você esteja apenas lendo as consultas no segundo sistema; otoh você pode obter todos os tipos de corrupção de problemas relacionados com a memória compartilhada estranhas, mas seria uma experiência interessante.
A melhor solução parece ser PgBouncer . Ele permite que você agrupe e "redirecione" conexões de um banco de dados para outro (mesmo em um host diferente).
Tags postgresql database