【发布时间】:2020-05-27 07:36:57
【问题描述】:
我正在尝试使用数字海洋部署一个项目。我按照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 后,我不认为部署会如此令人头疼。
【问题讨论】:
-
您的数据库名称不正确。检查一下
-
这里一个有用的调试步骤是尝试通过 cli 手动连接到数据库 - 你应该可以这样做:
sudo -u postgres psql -d jobzumoDB -U admin -W 123 -
@nthall 返回
psql: FATAL: Peer authentication failed for user "admin" -
@nthall 我从一个 youtube 教程开始,在那里我创建了一个用户 'justin' 和这个 'admin' 用户,所以我觉得我可能搞砸了,应该从一开始就尝试关注数字海洋资源
-
@nthall 它被列为“jobzumodb”而不是“jobzumoDB”!在 settings.py
makemigrations中更改后没有问题。谢谢你,你帮了大忙。如果我想了解更多信息,是否只需要阅读 postgres db?这些都是我不熟悉的命令。
标签: django postgresql digital-ocean django-database django-deployment