2017-01-23 3 views
1

私は、Djangoを使わずにPython 3スクリプトをHerokuのPostgresSQLデータベース(psycopg2)に接続しようとしました。Herokuでpsycopg2とPythonを接続する

私はいくつかの記事や関連する質問を見つけましたが、私のような初心者の方でも、わかりやすいものを得るために多くの時間を費やさなければなりませんでした。

私は最終的に何とかしましたが、うまくいけば質問を投稿して(そして回答)他の人がそれをより速く達成するのに役立ちます。

誰かがより良い方法を持っている場合は、もちろんそれを共有してください。


私が言ったように、私は、それがHerokuを使用してクラウドから実行させたいPythonスクリプトを持っていました。 Djangoは関与していません(スクリプト/スクレイパーのみ)。私は、彼らが十分でなかった場合でも、最初に役に立った

記事:

答えて

1

主な手順:

1 。Procfile

Procfileなければならない:

worker: python3 folder/subfolder/myscript.py 

2. Herokuのアドオン

アドオンHeroku Postgres :: Database Herokuのアカウントに適切な個人アプリに追加する必要があります。

これが正しく設定されていることを確認するために、thisは非常に役に立ちました。 DBに接続して

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

関連する問題