DJANGO POSTGRESQL FATAL: БАЗА ДАННЫХ НЕ СУЩЕСТВУЕТ (но на самом деле она существует) [КАК РЕШИТЬ ЭТО] - PullRequest
0 голосов
/ 08 ноября 2018

каждый.

Я пытаюсь настроить postgresql на моем проекте Django, я следовал учебному пособию на этом сайте , но я получаю сообщение об ошибке при попытке сделатьмиграции.

ФАТАЛЬНО: база данных "laudosOnline" не существует, как показано ниже:

    (venv) saudebelem@saudebelem-development:~/projeto/laudosOnline$ python3 manage.py makemigrations
/home/saudebelem/projeto/venv/lib/python3.6/site-packages/psycopg2/__init__.py:144: UserWarning: The psycopg2 wheel package will be renamed from release 2.8; in order to keep installing from binary please use "pip install psycopg2-binary" instead. For details see: <http://initd.org/psycopg/docs/install.html#binary-install-from-pypi>.
  """)
Traceback (most recent call last):
  File "/home/saudebelem/projeto/venv/lib/python3.6/site-packages/django/db/backends/base/base.py", line 216, in ensure_connection
    self.connect()
  File "/home/saudebelem/projeto/venv/lib/python3.6/site-packages/django/db/backends/base/base.py", line 194, in connect
    self.connection = self.get_new_connection(conn_params)
  File "/home/saudebelem/projeto/venv/lib/python3.6/site-packages/django/db/backends/postgresql/base.py", line 178, in get_new_connection
    connection = Database.connect(**conn_params)
  File "/home/saudebelem/projeto/venv/lib/python3.6/site-packages/psycopg2/__init__.py", line 130, in connect
    conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
psycopg2.OperationalError: FATAL:  database "laudosOnline" does not exist

Это моя конфигурация базы данных на settings.py:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': os.environ.get('DB_NAME', 'laudosOnline'),
    'USER': os.environ.get('DB_USER', 'edson'),
    'PASSWORD': os.environ.get('DB_PASS', 'mypassword'),
    'HOST': 'localhost',
    'PORT': '5432',
    }
}

Теперь, неудобная часть:

Я был уверен, что создал базу данных laudosOnline, поэтому я перешел на psql и попытался снова создать эту базу данных, и к моему удивлению, я получил сообщение: ОШИБКА: база данных«laudosonline» уже существует, как следует:

postgres=# CREATE DATABASE laudosOnline WITH OWNER edson;
ERROR:  database "laudosonline" already exists

И это было, когда осознал одну вещь: postgres не чувствителен к регистру, и когда я пытаюсь создать базу данных с заглавной буквой, как мой 'Вместо этого в laudosOnline создается база данных с именем laudosonline без прописных букв.

С точки зрения порядка, сам Python чувствителен к регистру, поэтому все, что мне нужно сделать, - это вернуться в мои settings.py и переименовать имя моей базы данных в его версию без заглавных букв:

DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.postgresql_psycopg2',
            'NAME': os.environ.get('DB_NAME', 'laudosonline'),
        'USER': os.environ.get('DB_USER', 'edson'),
        'PASSWORD': os.environ.get('DB_PASS', 'mypassword'),
        'HOST': 'localhost',
        'PORT': '5432',
        }
    }

И вуаля, это решено!

Я знаю, что это такая глупая ошибка, но я потратил около часа, пытаясь решить эту проблему, и я не могу найти решение в Интернете.Поэтому я надеюсь, что это поможет другим, которые могут столкнуться с этой проблемой в будущем.

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...