0

それで、私はherokuの本番データベース設定の間で何かを台無しにすることができました。

プロダクション設定をローカルで実行すると、エラーが表示されます。

ImproperlyConfigured at /
settings.DATABASES is improperly configured. Please supply the ENGINE value. Check settings documentation for more details.

Heroku にデプロイすると、次のエラーが表示されます: http://tulsa-staging.herokuapp.com

Exception Value:    

cannot concatenate 'str' and 'NoneType' objects

データベースの設定に関係しているようですが、これを解決する方法がわかりません。

Heroku の prod.py データベース設定

urlparse.uses_netloc.append('postgres')
urlparse.uses_netloc.append('mysql')

try:
    if 'DATABASE_URL' in os.environ:
        url = urlparse.urlparse(os.environ['DATABASE_URL'])

        DATABASES = {
            'default':{
                'ENGINE':'django.db.backends.postgresql_psycopg2',
                'NAME': url.path[1:],
                'USER': url.username,
                'PASSWORD': url.password,
                'HOST': url.hostname,
                'PORT': url.port
            }
        }

except Exception:
    print 'Unexpected error:', sys.exc_info()

これを解決する方法について何か考えはありますか?

4

1 に答える 1

1

なぜdj-database-urlを使用しないのですか?

これにより、これが非常に簡単になります。

import dj_database_url

DATABASES = {'default': dj_database_url.config(default='postgres://localhost')}

の値を自動的に検索して解析し、env['DATABASE_URL']渡した値にフォールバックしますdefault

これは、Herokuが実際に使用することを推奨しているものです。

于 2013-02-27T07:20:05.200 に答える