django.db.utils.OperationalError:致命:数据库不存在(postgres /部署到digitalocean)

问题描述 投票:1回答:1

我正在尝试用数字海洋部署一个项目。我按照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,但是由于视频与Digital Ocean的教程相去甚远,因此我没有这样做。

感谢您的帮助,在开始理解Django之后,我认为部署并不会造成太大的麻烦。

我正在尝试用数字海洋部署一个项目。我遵循了https://www.digitalocean.com/community/tutorials/how-to-set-up-django-with-postgres-nginx-and-gunicorn-on -...]中找到的说明...

django postgresql digital-ocean django-database django-deployment
1个回答
0
投票
将我们在注释中得出的结果形式化为答案,当您给postgres一个未加引号的字符串作为标识符时,它会强制将其转换为小写。 see this similar answer from pgsql-general mailing list。因此,由CREATE DATABASE jobzumoDB;创建的数据库的实际名称为jobzumodb
© www.soinside.com 2019 - 2024. All rights reserved.