PostgreSQL 9.6. Acabei de encontrar esses dois comandos em uma migração flyway, um ao lado do outro. Eu sinto que eles são provavelmente redundantes, mas como essas declarações diferem? Existe uma razão para usar ambos? Desculpas se esta é uma duplicata; Não consegui encontrar uma resposta.
relate perguntas
-
Posso ativar o PITR depois que o banco de dados foi usado
-
Práticas recomendadas para executar a replicação atrasada do deslocamento de tempo
-
Os procedimentos armazenados impedem a injeção de SQL?
-
Sequências Biológicas do UniProt no PostgreSQL
-
Qual é a diferença entre a replicação do PostgreSQL 9.0 e o Slony-I?
ALTER DATABASE
mudará osearch_path
para cada nova conexão com esse banco de dados. A alteração, no entanto, não afeta as conexões atuais - incluindo aquela que executou o arquivoALTER DATABASE
. Oset search_path
então altera o caminho também para a conexão atual para que tenha o mesmo valor que o caminho padrão.Existem mais maneiras de definir parâmetros de configuração do que apenas as duas que você encontrou. Nenhum deles é redundante. Existem várias maneiras de contornar as configurações padrão. E
search_path
quase sempre é essencial para o funcionamento geral.... define um padrão para conexões com o banco de dados que anula o padrão em
postgresql.conf
. Mas há opções mais específicas para anular ambos. As configurações de uma função específica anulam as configurações do banco de dados e as configurações de uma função específica em um banco de dados específico anulam todas elas. Todos esses são padrões para novas conexões. O manual:SET search_path
executado na sessão atual sempre tem a palavra final. Se você executar isso como o primeiro comando de cada sessão, os padrões nunca farão nada. Mas normalmente é sábio ter padrões razoáveis.Aqui está uma lista de maneiras de definir
search_path
(ou parâmetros de configuração semelhantes) e mais explicações: