2016-04-19 9 views
1

への接続を拒否します私のコードは次のようになります:Herokuのは、私はHerokuの上のPostgreSQLに基づいて私のフラスコアプリを展開しようとしていますが、私は<code>db.create_all()</code>でテーブルを作成しようとすると、私はこのエラーを取得しておくPostgresデータベース

app=Flask(__name__) 

app.config['SQLALCHEMY_DATABASE_URI']='postgres://kfgriimpfjecsv:Bk1*****[email protected]:5432/dd71doth8gopgh' 
db=SQLAlchemy(app) 
if __name__ == '__main__': 
    app.debug=True 
    app.run() 

私はHeroku Toolbeltを使ってHerokuサーバーと通信しています。私は、ほぼ同じエラーを取得

psql -p 5432 -h localhost 

:私はこれをしようとしたときも、

psql: could not connect to server: Connection refused 
     Is the server running on host "localhost" (127.0.0.1) and accepting 
     TCP/IP connections on port 5432? 

を私はまた、URIでec2-23-21-215-184.compute-1.amazonaws.comの代わりlocalhostを試してみましたが、同じエラーを得ました。

そしてhere私はdb.create_allを(実行したときに私が得る完全トレースバックです):

接続が拒否されており、これを解決する方法を、なぜすべてのアイデア?

+0

あなたにも、CLIからそれを得れば、その後、明らかにどちらかのPGが実行されていない、tcpをリッスンしていない、またはそのip:portコンボでリッスンしていません。 –

+0

Linuxの場合は、サービスを確認する必要があります。 psqlがpsycopgエラーを出すことができないからといって、2つのエラーは同じではないようです.cliの詳細なエラーログが役立ちます。 その他の方法として、サービス、ファイアウォール、およびポート自体のステータスを確認する方法があります。 データベースへの適切なアクセス許可。 – manugupt1

+0

トレースバックを追加して質問を編集しましたが、サービスをチェックする方法がわかりません。私はそれをする方法についてちょっと掘り下げなければならないでしょう。 – multigoodverse

答えて

0

私がそう、次の第2ラインを変更して問題を解決し、データベースURIにSSLMODEパラメータを追加しなければならなかったようだ:

app.config['SQLALCHEMY_DATABASE_URI']= "postgresql+psycopg2://kfgriimpfjecsv:Bk1*******[email protected]:5432/dd71doth8gopgh?sslmode=require" 
+1

ヒント: 'os.environ ['DATABASE_URL']'を使って接続パラメータを取得してください。 1)Herokuが推奨する解決策です(バックグラウンドはhttp://12factor.netを参照してください)。2)あなたのコードに資格情報を入れてはいけません。3)そうすれば、資格情報を回せるようになります( 'heroku pg:credentials --reset'コードを再デプロイする必要はありません。 – bimsapi

+0

@bimsapi素晴らしいヒント、ありがとう! – multigoodverse

関連する問題

 関連する問題