2017-01-23 73 views
1

我一直在嘗試一些日子來將我的python 3腳本連接到Heroku中的PostgresSQL數據庫(psycopg2),沒有Django。在Heroku中將psycopg2與Python連接

我發現了一些文章和相關的問題,但我不得不投入大量時間來獲得我認爲應該很直接的東西,即使是像我這樣的新手。

我最終以某種方式工作,但希望張貼問題(和答案)將幫助其他人更快地實現它。

當然,如果有人有更好的方法,請分享。


正如我所說的,我有我想讓它使用Heroku的雲中運行一個Python腳本。沒有涉及Django(只是一個腳本/刮板)。

文章,我發現在一開始幫助的,即使他們是不夠的:

回答

1

主要步驟:

1 。Procfile

Procfile必須是:

worker: python3 folder/subfolder/myscript.py 

2. Heroku的附加

附加Heroku Postgres :: Database已被添加到Heroku的帳戶適當的個人應用。

爲確保設置正確,this非常有幫助。

3.與數據庫連接Python腳本

最後,建立在我的python腳本myscript.py的連接,我把this article作爲參考,它適用於Python的3:

import psycopg2 
import urllib.parse as urlparse 
import os 

url = urlparse.urlparse(os.environ['DATABASE_URL']) 
dbname = url.path[1:] 
user = url.username 
password = url.password 
host = url.hostname 
port = url.port 

con = psycopg2.connect(
      dbname=dbname, 
      user=user, 
      password=password, 
      host=host, 
      port=port 
      ) 

要創建一個新的數據庫,this SO question解釋它。主要路線是:

con.set_isolation_level(ISOLATION_LEVEL_AUTOCOMMIT) 
+0

[本文](http://andyfiedler.com/2016/10/connecting-to-heroku-postgres-in-python)提出了另一種方法(我沒有嘗試) – J0ANMM