Подключение django к postgres: django.db.utils.operationalerror: fatal: база данных «databasename» не существует

Я только начал изучать Django после того, как прошел несколько руководств по Python.

Я пытаюсь подключить свою базу данных POSTGRES к только что созданному мной проекту Django.

Однако у меня возникла эта проблема:

django.db.utils.OperationalError: FATAL:  database "producthuntdb" does not exist

Я выполнил следующие шаги:

1) Открыл postgress, щелкнув его значок

2) Нажал на базу данных "postgress". Терминал открылся и я написал: CREATE DATABASE producthuntdb; База данных была создана, потому что я вижу ее, если открываю postgress с помощью ее значка.

3) Зашел в мой проект Django в "настройках" и изменил базу данных SQLITE на следующее:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'producthuntdb',
        'USER': 'mymac2017',
        'PASSWORD': 'mypassword',
        'HOST': 'localhost',
        'PORT': '5432',
    }
}

4) Запускаем код python3 manage.py migrate

Однако я получаю сообщение об ошибке:

django.db.utils.OperationalError: FATAL: database "producthuntdb" does not exist

Итак, я сделал следующее:

  • Щелчок по иконке postgress и открытие базы данных producthuntdb

  • Как только терминал открылся, я написал: \du

  • Есть два пользователя с атрибутами:

    1) mymac2017 | Суперпользователь, Создать роль, Создать БД | {}

    2) postgres | Суперпользователь, Создать роль, Создать БД, Репликация, Обойти RLS | {}

Что я делаю неправильно?

Я попытался найти другие ответы на эту проблему, и большинство проблем связано с неправильным написанием имени базы данных ИЛИ отсутствием ее создания. Однако имя моей базы данных правильное, и я могу увидеть базу данных producthuntdb, если открою postgres.

Большое спасибо за вашу помощь.

Есть ли у пользователя доступ к базе данных?

Willem Van Onsem 13.09.2018 18:27

Я уверен в названии базы данных. Я НЕ уверен, как проверить, есть ли у пользователя доступ к базе данных. Я попытался нажать "producthuntdb" и записать в терминале "\ du". Есть два пользователя, один из которых тот же, что я написал для "'USER': 'postgres'".

Magofoco 13.09.2018 18:28

@WillemVanOnsem Разве это не вызовет ошибку access denied?

schrodigerscatcuriosity 13.09.2018 18:32

Вы пытались перезапустить службу postgresql?

schrodigerscatcuriosity 13.09.2018 18:38

Я попытался закрыть и снова открыть postgres (нажав кнопку «Выйти»), но я не уверен, что вы имеете в виду, извините.

Magofoco 13.09.2018 18:41
3
5
4 294
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я установил неправильный порт базы данных в файле "settings.py" Django.

Я использовал 'PORT': '5432' вместо 'PORT': '5433'

РЕШЕНИЕ:

  • Перейдите в приложение / значок / программу Postgres
  • Щелкните «Настройка сервера» и посмотрите, какой ПОРТ используется в базе данных POSTGRES.
  • Убедитесь, что ПОРТ, используемый базой данных, совпадает с тем, который вы указываете в файле "settings.py" вашего проекта Django.

Другие вопросы по теме