我想知道为什么我的服务器在运行,为什么它看不到另一个数据库。psql和\l:
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-------------+-------------+----------+-------------+-------------+-----------------------
aso | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
owner | owner | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
(4 rows)我的Django设置:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'postgres',
'USER': 'postgres',
'HOST': 'db',
'PORT': 5432,
}
}如您所见,没有名为postgres的数据库,但服务器运行正常(保存数据等)。另一方面,当我使用:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'aso',
'USER': 'postgres',
'HOST': 'db',
'PORT': 5432,
}
}我明白了,django.db.utils.OperationalError: FATAL: database "aso" does not exist,有人能解释一下吗?
编辑了 @Adaikalaraj建议在docker中创建数据库。我试着用这个方法:
init.sql
CREATE USER postgres;
CREATE DATABASE aso;
GRANT ALL PRIVILEGES ON DATABASE aso TO postgres;我更新的Dockerfile
FROM python:3.6.1
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip3 install -r requirements.txt
ADD . /code/
FROM library/postgres
ADD init.sql /docker-entrypoint-initdb.d/不幸的是我得到了:
db_1 | LOG: database system was shut down at 2017-07-05 14:02:41 UTC
web_1 | /usr/local/bin/docker-entrypoint.sh: line 145: exec: python3: not found
db_1 | LOG: MultiXact member wraparound protections are now enabled
db_1 | LOG: autovacuum launcher started
db_1 | LOG: database system is ready to accept connections
dockerpri_web_1 exited with code 127发布于 2017-07-05 12:18:37
在这里,'HOST': 'db'运行在docker中,似乎您正在检查系统中的psql。您可以在HOST : 127.0.0.1中给您的IP添加(例如: 127.0.0.1),也可以在端口内运行的postgres中创建db aso。
https://stackoverflow.com/questions/44922523
复制相似问题