30

env データベース設定の追加に関するこれらの手順に従った後、ローカル dev django アプリを動作させようとしています。

https://devcenter.heroku.com/articles/django-injection

指示に従いましたが、アプリがローカル データベースにアクセスしようとすると、次のエラーが発生します。

Request Method: GET
Request URL:    http://localhost:8000
Django Version: 1.4
Exception Type: ImproperlyConfigured
Exception Value:    
You need to specify NAME in your Django settings file.

私のデータベース設定はもともと、

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'db',                      # Or path to database file if using sqlite3.
        'USER': 'foo',                      # Not used with sqlite3.
        'PASSWORD': 'bar',                  # Not used with sqlite3.
        'HOST': 'localhost',                
        'PORT': '5432',
    }
}

herokuの記事には、設定ファイルに以下を追加するように書かれています

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

DATABASE_URL が dev で使用できない場合、dj_database_url.config で自分の dev 設定を使用するにはどうすればよいですか?

4

5 に答える 5

39

このように、開発設定をデフォルト値に追加するだけです...

import dj_database_url
DATABASES = {'default': dj_database_url.config(default='postgres://foo:bar@localhost:5432/db')}
于 2012-06-19T11:40:25.797 に答える
13

これをsettings.pyで使用します。

DATABASES = {'default': dj_database_url.config(default=os.environ['DATABASE_URL'])}

.envファイルには次のものがあります。

DATABASE_URL=postgres://localhost/yourdbname

「foremanstart」で起動すると、Heroku自体で実行するのと同じように、.envファイルを調べて、これらすべての環境変数を作成します。「herokuconfig」と入力して、DATABASE_URLが設定されていることを確認します。これは、postgresデータベースアドオンを追加した場合に必要です。

于 2012-09-12T15:50:33.313 に答える
8

オペレーティング システムに環境変数を設定し、設定されているかどうかを確認するだけです。たとえば、UNIX システムでは次のようになります。

# In ~/.bash_profile
export LOCAL_DEV=true

# In settings.py
import dj_database_url
DATABASES = {'default': dj_database_url.config(default='postgres://localhost')}

if bool(os.environ.get('LOCAL_DEV', False)):
    # Override DATABASES['default'] with your local database configuration

また、 heroku スペースに環境変数を設定する必要がある場合:

heroku config:add MY_VAR='my_value'
于 2012-06-17T15:20:39.617 に答える
5

私はこれを試しましたが、ここに私のコードがあります:

import dj_database_url

local_db = 'postgres://django_login:123456@localhost/django_db'
DATABASES = {'default': dj_database_url.config(default=local_db)}

私のデータベース名は「django_db」、ユーザー名は「django_login」、パスワードは「123456」です。

私のコードは、ローカル マシンと heroku の両方で実行できます。

于 2012-10-06T09:41:15.763 に答える
1

dj_database_url をインポート

データベース = {'default': dj_database_url.config(default='postgres:// yourusername : yourpassword @ yourhosturl :5432/ yourdbname ')}

** ローカル データベースを使用している場合は太字の文字列をデータベース設定に置き換えてから、yourhosturllocalhostに置き換えます。

于 2016-08-29T07:51:33.327 に答える