2017-01-23 77 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