web-dev-qa-db-ja.com

操作エラー:致命的:データベース「Django」が存在しません

私はdbダミーです。Djangoプロジェクト用にPostgreSQLを設定しようとしています。そのために、psycopg2も使用しています。データベースは複雑ですが、個人的には、 DATABASE-とUSER-SETTINGS/INFOのすべてを1か所で取得できるので、接続先と方法がわかりました(まだローカルで実行しているため、セキュリティの問題はありません)。

ただし、標準の「admin」-ユーザー「postgres」に接続しても、このデータベースを作成する「権限」がないようです。インストール時に入力したパスワード( "pw123")を使用します。

Djangoプロジェクト(settings.py):

DATABASES = {
    'default': {
        'ENGINE': 'Django.db.backends.postgresql_psycopg2',
        'NAME': 'Django',                      
        'USER': 'postgres',
        'PASSWORD': 'pw123',
        'Host': '127.0.0.1',
        'PORT': '5432',
    }
}

CMD-> python manage.py Shell(Django.db接続をインポートした後))

>>> cursor = connection.cursor()
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "C:\Python27\lib\site-packages\Django\db\backends\__init__.py", line 165, in cursor
    cursor = self.make_debug_cursor(self._cursor())
  File "C:\Python27\lib\site-packages\Django\db\backends\__init__.py", line 138, in _cursor
    self.ensure_connection()
  File "C:\Python27\lib\site-packages\Django\db\backends\__init__.py", line 133, in ensure_connection
    self.connect()
  File "C:\Python27\lib\site-packages\Django\db\utils.py", line 94, in __exit__
    six.reraise(dj_exc_type, dj_exc_value, traceback)
  File "C:\Python27\lib\site-packages\Django\db\backends\__init__.py", line 133, in ensure_connection
    self.connect()
  File "C:\Python27\lib\site-packages\Django\db\backends\__init__.py", line 122, in connect
    self.connection = self.get_new_connection(conn_params)
  File "C:\Python27\lib\site-packages\Django\db\backends\postgresql_psycopg2\base.py", line 134, in get_new_connection
    return Database.connect(**conn_params)
  File "C:\Python27\lib\site-packages\psycopg2-2.5.4-py2.7-win32.Egg\psycopg2\__init__.py", line 164, in connect
    conn = _connect(dsn, connection_factory=connection_factory, async=async)
OperationalError: FATAL:  database "Django" does not exist

インストールで何か間違ったことをしましたか?修正できますか?すべてを再インストールすることを検討すべきですか?どうすればいいですか?データベースは私を混乱させています:P

16
howtopythonpls

PostgreSQLは、最初の接続時にデータベースを自動作成しません。使用する前にデータベースを作成する必要があります。

PgAdmin-IIIまたはコマンドラインpsqlクライアントを介してPostgreSQL(通常は「postgres」という名前の管理データベース)に接続し、データベースDjangoを作成します。 PgAdmin-IIIから、メニューからこれを行うことができます。 psqlから the CREATE DATABASE SQLコマンド

マニュアルの PostgreSQLデータベースの作成このチュートリアルで5秒のgoogle検索で見つけたが、完全に間違っているわけではない も参照してください。

私が行うことは、psql([スタート]メニューにあります)を 'postgres'ユーザーとして使用し、インストール時に設定したパスワードを使用して接続します。

CREATE USER Django WITH PASSWORD 'somepassword';

CREATE DATABASE Django WITH OWNER Django ENCODING 'utf-8';
21
Craig Ringer

SQLiteとは異なり、データベースを作成する必要があるためです。このガイドに従うことができます https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-Django-with-postgres -nginx-and-gunicorn#step-seven-configure-postgresql

5
fasouto

必要なことは、postgresqlにDjangoという名前のデータベースを作成することです。デフォルトでは、ユーザーpostgresはデータベースDjangoに対する権限を持ち、パスワードはユーザーpostgresのパスワード。

1
Shubham Gupta