PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Anwendungsname auf Postgres/SQLAlchemy festlegen

die Antwort darauf ist eine Kombination aus:

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

Alle anderen Verbindungsparameter, die von der Clientbibliothek/dem Server unterstützt werden, können entweder in der Verbindungszeichenfolge oder als Schlüsselwörter übergeben werden. Die PostgreSQL-Dokumentation enthält die vollständige Liste der unterstützten Parameter. Beachten Sie auch, dass dieselben Parameter mithilfe von Umgebungsvariablen an die Clientbibliothek übergeben werden können.

wo die Variable, die wir brauchen, ist:

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

Der Anwendungsname kann eine beliebige Zeichenfolge mit weniger als NAMEDATALEN Zeichen sein (64 Zeichen in einem Standard-Build). Es wird normalerweise von einer Anwendung bei der Verbindung mit dem Server festgelegt. Der Name wird in der pg_stat_activity-Ansicht angezeigt und in CSV-Protokolleinträge aufgenommen. Es kann auch über den Parameter log_line_prefix in reguläre Protokolleinträge aufgenommen werden. Im Wert application_name dürfen nur druckbare ASCII-Zeichen verwendet werden. Andere Zeichen werden durch Fragezeichen (?) ersetzt.

kombiniert mit :

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

Zeichenfolgenbasierte Argumente können direkt aus der URL-Zeichenfolge als Abfrageargumente übergeben werden:(Beispiel ...) create_engine() nimmt auch ein Argument connect_args, das ein zusätzliches Wörterbuch ist, das an connect() übergeben wird. Dies kann verwendet werden, wenn Argumente eines anderen Typs als Zeichenfolge erforderlich sind und der Datenbankkonnektor von SQLAlchemy keine Typkonvertierungslogik für diesen Parameter

aufweist

daraus erhalten wir:

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

oder:

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