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

fafcakar  于 2022-11-23  发布在  PostgreSQL
关注(0)|答案(2)|浏览(119)

我正在尝试部署一个项目与数字海洋。我遵循的指示发现在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

在www.example.com中设置以下内容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']

我还没有将www.example.com连接jobzumo.com到数字海洋,但IP地址是从我的droplet复制的。
还有,我跑了:pip install django gunicorn psycopg2(来自数字海洋)
但是youtube上的教程说现在安装psycopg2-binary是非常重要的,然而,我没有这样做,因为视频偏离了数字海洋的教程。
谢谢你的帮助,在开始了解django之后,我不认为部署会是一个令人挠头的问题。

cpjpxq1n

cpjpxq1n1#

将我们在注解中得出的结果形式化为一个答案,当您给予postgres一个不带引号的字符串作为标识符时,它会强制它小写. see this similar answer from pgsql-general mailing list。因此,由命令CREATE DATABASE jobzumoDB;创建的数据库的实际名称是jobzumodb。要创建一个名为jobzumoDB的数据库,必须使用引号,如CREATE DATABASE "jobzumoDB";

z0qdvdin

z0qdvdin2#

用途:

名称':'作业zumodb',

代替:

名称':'作业zumoDB',

相关问题