каждый.
Я пытаюсь настроить 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',
}
}
И вуаля, это решено!
Я знаю, что это такая глупая ошибка, но я потратил около часа, пытаясь решить эту проблему, и я не могу найти решение в Интернете.Поэтому я надеюсь, что это поможет другим, которые могут столкнуться с этой проблемой в будущем.
Спасибо.