Fold All / Expand All

2016年10月19日 星期三

pg8000 - A Pure-Python PostgreSQL Driver

搜尋 python postgresql,第一個出現的會是 psycopg,不過 psycopg 是 libpq wrapper,是需要 so 才可以跑啊
為了不想另外 build so,想找 pure Python solution,目前看到的就是 pg8000
因為有 Python Database API Specification v2.0,所以介面上大同小異
https://www.python.org/dev/peps/pep-0249/#introduction
然後在 DS 上想要使用,沒有安裝 Python Module 套件的話,會因為一些 depend library 沒有而失敗,裝了 Python Module 套件後發現,其實裡面也有 psycopg2 @@
先不管這個,pg8000 在 DS 上使用有幾個地方要注意
一、connect 時,要使用 unix_sock 參數,因為預設 tcp 只有聽 localhost,而且沒有可連線的使用者,除非自行手動改相關 config。而 socket 位置可以用netstat -anp|grep postgres來找
二、db 內容有非 ASCII 時,一開始要先跑一行
cursor.execute("SET CLIENT_ENCODING TO 'UTF8'")
才不會噴 UnicodeDecode error
再來玩玩看…

沒有留言: