PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Définition de nom_application sur Postgres/SQLAlchemy

la réponse à cela est une combinaison de :

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

Tout autre paramètre de connexion pris en charge par la bibliothèque cliente/le serveur peut être transmis soit dans la chaîne de connexion, soit sous forme de mots-clés. La documentation PostgreSQL contient la liste complète des paramètres pris en charge. Notez également que les mêmes paramètres peuvent être transmis à la bibliothèque cliente à l'aide de variables d'environnement.

où la variable dont nous avons besoin est :

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

Le nom_application peut être n'importe quelle chaîne de moins de caractères NAMEDATALEN (64 caractères dans une version standard). Il est généralement défini par une application lors de la connexion au serveur. Le nom sera affiché dans la vue pg_stat_activity et inclus dans les entrées du journal CSV. Il peut également être inclus dans les entrées de journal régulières via le paramètre log_line_prefix. Seuls les caractères ASCII imprimables peuvent être utilisés dans la valeur nom_application. Les autres caractères seront remplacés par des points d'interrogation (?).

combiné avec :

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

Les arguments basés sur des chaînes peuvent être passés directement à partir de la chaîne d'URL en tant qu'arguments de requête :(exemple...) create_engine() prend également un argument connect_args qui est un dictionnaire supplémentaire qui sera passé à connect(). Cela peut être utilisé lorsque des arguments d'un type autre que chaîne sont requis et que le connecteur de base de données de SQLAlchemy n'a pas de logique de conversion de type présente pour ce paramètre

à partir de là, nous obtenons :

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"})