Exécution de Mx sql-postgres dans emacs sur windows

Lorsque j’essaie d’exécuter un processus psql inférieur dans emacs sous Windows, il semble que je n’obtienne aucune réponse. Cela semble être un problème connu dont la solution consiste à installer la version cygwin de psql . Malheureusement, le cygwin psql semble absolument rien faire, même psql -V ne fait rien. Quelqu’un at-il une solution à l’un de ces problèmes ou un moyen facile d’envoyer des requêtes à partir d’emacs à postgresql.

Ce ne sera probablement pas une bonne réponse, mais je ne suis pas actuellement sur une machine Windows avec Emacs ou PostGres, donc je ne peux pas trouver une meilleure solution pour vous.

Cela dit, pouvez-vous lancer psql dans un shell de commandes? Si c’est le cas, vous pouvez peut-être essayer de démarrer le shell (shell Mx shell ) ou Eshell ( Mx eshell ) pour démarrer un shell inférieur et exécuter psql partir de là.

J’allais à l’origine vous suggérer d’appeler Mx shell-command (également M-! ) Et ensuite spécifier psql & pour votre commande. Le & permet à Emacs de savoir que vous souhaitez exécuter la commande shell de manière asynchrone. Cependant, cette entrée sur le EmacsWiki indique qu’elle ne fonctionnera pas sous Windows. Vous pourriez l’essayer quand même et voir ce qui se passe …

Ok, j’ai finalement compris comment faire fonctionner le cygwin psql. Il semble que le cygpq.dll fourni manquait un point d’entrée,

 strace -o /dev/null psql --version 

Répondu par “Le point d’entrée de procédure PQencryptPassword n’a pas pu être localisé dans la bibliothèque de liens dynamics cygpq.dll.”

J’ai remplacé le cygpq.dll fourni par cygwin par un fichier compilé localement et il semble que nous cuisinions maintenant avec du gaz. J’ai besoin d’en savoir plus sur la liaison dynamic cygwin. Je vous remercie tous pour votre soutien patient.

J’ai eu un problème similaire (mais n’a pas pu faire fonctionner le cygwin psql).

Finalement, j’ai découvert que Mx sql-postgres et psql call dans Mx shell étaient en fait interactifs mais sans invite visible; c’est-à-dire que l’on peut taper des commandes (au tout début de la dernière ligne) et qu’elles s’exécutent comme prévu.

Avant de réaliser que j’avais modifié mon fichier de mots de passe postgres afin d’éviter l’invite de mot de passe et le blocage initial de l’appel psql dans le shell Mx:

Lorsque les valeurs par défaut ne sont pas correctes, vous pouvez vous épargner de la saisie en définissant les variables d’environnement PGDATABASE, PGHOST, PGPORT et / ou PGUSER sur les valeurs appropriées. (Pour les variables d’environnement supplémentaires, voir la documentation.) Il est également pratique d’avoir un fichier ~ / .pgpass pour éviter d’avoir à saisir régulièrement des mots de passe. Voir la documentation pour plus d’informations. ( http://linux.die.net/man/1/psql )