10

「Heroku で Django を使い始める」チュートリアルを読んで適用しましたが、db の同期中に問題が発生しました。

raise ImproperlyConfigured("settings.DATABASES is improperly configured." 
django.core.exceptions.ImproperlyConfigured: 
settings.DATABASES is improperly configured. Please supply the ENGINE value. 

「 Please supply the ENGINE value Django database configuration 」と「settings.DATABASES is不適切な構成」というエラーが、django 1.4 で syncdb を実行すると読みましたが、それでも同じエラーが発生します。実行中

heroku run python manage.py --settings=moz455.settings syncdb

「不明なコマンド: '--settings=moz455.settings'」というエラーが表示されます。この問題を解決するには?

Django のバージョンは 1.4 です。

4

6 に答える 6

12

私は同じ問題に遭遇しましたが、明らかに異なる理由でした。https://devcenter.heroku.com/articles/django#prerequisitesの Heroku ドキュメントでは、以下を に追加するように指示されていsettings.pyます。

DATABASES['default'] =  dj_database_url.config()

次のパラメーターを渡すことができます。

DATABASES['default'] =  dj_database_url.config(default='postgres://user:pass@localhost/dbname')

これにより、ローカルおよび Heroku での開発が可能になります。私が抱えていた問題を実際に解決したのは、DATABASE_URL の Heroku 構成環境変数が実際には設定されていなかったことです。これを設定するために、私は走った

$ heroku config

別の構成変数に割り当てられたデータベース URL を見ました。そこで、新しい変数を作成しました:

$ heroko config:add DATABASE_URL={#the database url}

それは私の問題を解決しました。同様の問題を抱えている他の人の助けになることを願っています。

于 2013-04-10T23:55:36.953 に答える
8

ここですべての回答を試し、DATABASE_URL が存在することを確認した後、何も機能しませんでした。

2行目を追加しましたが、うまくいきました

DATABASES['default'] = dj_database_url.config() <--- heroko docs says this is enough
DATABASES['default']['ENGINE'] = 'django.db.backends.postgresql_psycopg2' <---- add this
于 2013-07-26T08:38:59.717 に答える
1

自分で解決しました:manage.pyに次のようなコードを追加します:

CurDir = os.path.dirname(os.path.abspath(__file__))
ProjectDir = os.path.join(CurDir, "moz455")
sys.path += [ProjectDir]

そして、次のコマンドで変更をコミットします。

git add -A
git commit -m "commit"
git push -f heroku
于 2012-08-06T12:37:12.277 に答える
0

別の順序で試してください:

heroku run python manage.py syncdb --settings=moz455.settings

manage.py コマンドは次のようになります。

manage.py <command> <options>

しかし、あなたはそれを次のように使用しました:

manage.py <options> <command>

その他の問題 (ENGINE 設定の欠如) は、syncdb コマンドの実行中に使用される設定ファイルが正しくないことが原因である可能性があります。上記も修正する必要があります。

于 2012-08-06T10:40:51.283 に答える
0

少し遅れています。ただし、デフォルトの django データベース設定行をすべて削除するだけです。herokuのものを追加します。

それは正しく動作します

** 編集 ** または単に `socket.gethostname() を使用できます。

例 :

if socket.gethostname() == 'xx':
    DATABASE_SETTINGS ={ }

elif socket.gethostname() == 'xxx':
    another database settings...

複数のホストでプロジェクトを実行できます。

于 2012-09-24T20:44:48.910 に答える