1

django アプリを heroku にデプロイして、ローカルの postgres db を使用することに失敗しました。

私のデータベース設定は次のとおりです。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'mydb',
        'USER': 'foo',
        'PASSWORD': 'bar',
        'HOST': 'localhost',
        'PORT': '',
    }
}

すべてがローカルで正常に実行されます。https://devcenter.heroku.com/articles/djangoの指示に従って、次のコードを設定ファイルの末尾に追加します。

import dj_database_url
DATABASES = {'default': dj_database_url.config(default='postgres://foo:bar@localhost/mydb')}
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')

ただし、これにより次のエラーが発生します。

OperationalError の / サーバーに接続できませんでした: 接続が拒否されました サーバーはホスト "localhost" (127.0.0.1) で実行されており、ポート 5432 で TCP/IP 接続を受け入れていますか?

私のdjangoアプリは、このエラーがスローされるデータベースに接続する必要がある場合を除いて、Herokuで正常に動作します。

ここで私が間違っていることを知っている人はいますか?

4

2 に答える 2

0
  1. ローカル データベースへのリモート postgres アクセスを許可します。
  2. 設定ファイルを次のように変更します。

データベース = {

  'default': {
      'ENGINE': 'django.db.backends.postgresql_psycopg2',
      'NAME': 'your db name',
      'USER': 'your username',
      'PASSWORD': 'password',
      'HOST': 'Your computer's IP',
      'PORT': '6122',
  }

または、ローカル データベースをheroku postgresに複製し、そのデータベースを使用するように設定を変更する必要があります。

于 2013-07-22T00:45:11.683 に答える