在org-mode中使用sql,解决客户端问题

,

Hi all:

最近写sql比较多,大多是测试用例,用org-mode写,很方便,但是遇到必须装数据库的客户端。
如果不同的数据库,就要装不同的客户端,觉得太麻烦了,打算用python模拟了一个。 
但是发现postgresql 接收不到password, 用bash去测试,发现没有一次性将password传递。但是模拟password输入,也接收不到。

晕,还是看源码,发现设置到PGPASSWORD环境变量去了,表现和mysql不一致。


*** SQL
:PROPERTIES:
:header-args:sql: :engine postgresql :dbhost 127.0.0.1 :dbuser postgres :dbpassword meiyoumima :database postgres
:END:

#+begin_src sql :results output
  select * from demo;
#+end_src

效果如下:

sqlclient.py

alias psql=“python sqlclient.py postgresql”

3 个赞

好办法,因为不想装某些数据库的客户端,又需要用到,于是自己写代码模拟一个,这听起来很hack 。

很多数据库确实够难装的,我装过次数最多也最难装的是sql2008,虽然2024了,但还是有一些软件在用sql2008,希望这些软件都早日被淘汰掉 :pray:

这个仅查询使用还行,如果需要创建表,修改表啥的,就支持不了了。

需要做的工作就太多了,也得不偿失。

最佳做法应该是用ssh打洞,直接去服务器上链接。

例如pg替换后的命令如下:

ssh demo -p 22 "psql -h 127.0.0.1 -p 5432 -d postgres -U postgres -f /var/tmp/xxxxx -o /var/tmp/zzzzz"

刚发现有大佬用python写了cli,先mark dbcli for python