PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Configurando application_name no Postgres/SQLAlchemy


a resposta para isso é uma combinação de:

http://initd.org/psycopg/docs/module.html#psycopg2.connect

Qualquer outro parâmetro de conexão suportado pela biblioteca/servidor cliente pode ser passado na cadeia de conexão ou como palavras-chave. A documentação do PostgreSQL contém a lista completa dos parâmetros suportados. Observe também que os mesmos parâmetros podem ser passados ​​para a biblioteca cliente usando variáveis ​​de ambiente.

onde a variável que precisamos é:

http://www.postgresql.org/docs/current/static/runtime-config-logging.html#GUC-APPLICATION-NAME

O application_name pode ser qualquer string com menos de NAMEDATALEN caracteres (64 caracteres em uma compilação padrão). Normalmente, é definido por um aplicativo na conexão com o servidor. O nome será exibido na visualização pg_stat_activity e incluído nas entradas de log CSV. Ele também pode ser incluído em entradas de log regulares por meio do parâmetro log_line_prefix. Somente caracteres ASCII imprimíveis podem ser usados ​​no valor application_name. Outros caracteres serão substituídos por pontos de interrogação (?).

combinado com :

http://docs.sqlalchemy.org/en/rel_0_8/core/engines.html#custom-dbapi-args

Argumentos baseados em string podem ser passados ​​diretamente da string de URL como argumentos de consulta:(exemplo...) create_engine() também recebe um argumento connect_args que é um dicionário adicional que será passado para connect(). Isso pode ser usado quando argumentos de um tipo diferente de string são necessários e o conector de banco de dados do SQLAlchemy não tem lógica de conversão de tipo presente para esse parâmetro

daí obtemos:
e = create_engine("postgresql://scott:[email protected]/test?application_name=myapp")

ou:
e = create_engine("postgresql://scott:[email protected]/test", 
              connect_args={"application_name":"myapp"})