django.db.utils.OperationalError: FATAL: database does not exist (postgres / deploy to digitalocean)
django.db.utils.OperationalError: FATAL: database does not exist (postgres / deploy to digitalocean)
我正在尝试使用数字海洋部署一个项目。我按照 https://www.digitalocean.com/community/tutorials/how-to-set-up-django-with-postgres-nginx-and-gunicorn-on-ubuntu-16-04 中的说明进行操作
一些重要的:
我运行:
postgres=# CREATE DATABASE jobzumoDB;
CREATE DATABASE
然后:
postgres=# CREATE USER admin WITH PASSWORD '123';
CREATE ROLE
postgres=# GRANT ALL PRIVILEGES ON DATABASE jobzumoDB TO admin;
GRANT
在settings.py中设置如下:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'jobzumoDB',
'USER':'admin',
'PASSWORD':'123',
'HOST':'localhost',
'PORT':'',
}
然后尝试 运行:
~/jobzumo/manage.py makemigrations
并得到:
File "/home/justin/jobzumo/env/lib/python3.6/site-packages/psycopg2/__init__.py", line 126, in connect
conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
django.db.utils.OperationalError: FATAL: database "jobzumoDB" does not exist
两件事:
ALLOWED_HOSTS = ['jobzumo.com', '142.93.184.125']
我还没有 jobzumo.com 连接到数字海洋,但 IP 地址是从我的 droplet 中复制的。
另外,我运行:pip install django gunicorn psycopg2
(来自数字海洋)
但是 youtube 上的一个教程说这对现在来说非常重要
安装 psycopg2-binary
,但是,我没有这样做,因为视频偏离了数字海洋的教程。
感谢您的帮助,在开始了解 django 之后,我认为部署不会如此令人头疼。
形式化我们在评论中得出的答案作为答案,当你给 postgres 一个不带引号的字符串作为标识符时,它会强制它变成小写。 see this similar answer from pgsql-general mailing list。所以命令CREATE DATABASE jobzumoDB;
创建的数据库的实际名称是jobzumodb
。要创建名为 jobzumoDB
的数据库,必须使用引号,如 CREATE DATABASE "jobzumoDB";
我正在尝试使用数字海洋部署一个项目。我按照 https://www.digitalocean.com/community/tutorials/how-to-set-up-django-with-postgres-nginx-and-gunicorn-on-ubuntu-16-04 中的说明进行操作 一些重要的: 我运行:
postgres=# CREATE DATABASE jobzumoDB;
CREATE DATABASE
然后:
postgres=# CREATE USER admin WITH PASSWORD '123';
CREATE ROLE
postgres=# GRANT ALL PRIVILEGES ON DATABASE jobzumoDB TO admin;
GRANT
在settings.py中设置如下:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'jobzumoDB',
'USER':'admin',
'PASSWORD':'123',
'HOST':'localhost',
'PORT':'',
}
然后尝试 运行:
~/jobzumo/manage.py makemigrations
并得到:
File "/home/justin/jobzumo/env/lib/python3.6/site-packages/psycopg2/__init__.py", line 126, in connect
conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
django.db.utils.OperationalError: FATAL: database "jobzumoDB" does not exist
两件事:
ALLOWED_HOSTS = ['jobzumo.com', '142.93.184.125']
我还没有 jobzumo.com 连接到数字海洋,但 IP 地址是从我的 droplet 中复制的。
另外,我运行:pip install django gunicorn psycopg2
(来自数字海洋)
但是 youtube 上的一个教程说这对现在来说非常重要
安装 psycopg2-binary
,但是,我没有这样做,因为视频偏离了数字海洋的教程。
感谢您的帮助,在开始了解 django 之后,我认为部署不会如此令人头疼。
形式化我们在评论中得出的答案作为答案,当你给 postgres 一个不带引号的字符串作为标识符时,它会强制它变成小写。 see this similar answer from pgsql-general mailing list。所以命令CREATE DATABASE jobzumoDB;
创建的数据库的实际名称是jobzumodb
。要创建名为 jobzumoDB
的数据库,必须使用引号,如 CREATE DATABASE "jobzumoDB";