[英]Not able to connect postgresql with django
I've created a database named testdb1
in postgresql
and I am trying to connect it with my django
app. 我已经在
postgresql
创建了一个名为testdb1
的数据库,并尝试将其与django
应用程序连接。 But when I run python manage.py syncdb
I get the error django.db.utils.OperationalError: FATAL: database "testdb1" does not exist
. 但是,当我运行
python manage.py syncdb
,出现错误django.db.utils.OperationalError: FATAL: database "testdb1" does not exist
。 The database does exist as it is confirmed by the following: 数据库确实存在,因为已通过以下确认:
archit@archit-Inspiron-5520:~/Documents/DjangoLabs/gswd$ psql -U postgres
Password for user postgres:
psql (9.1.14)
Type "help" for help.
postgres=# \connect testdb1
You are now connected to database "testdb1" as user "postgres".
testdb1=# \d
List of relations
Schema | Name | Type | Owner
--------+---------+-------+----------
public | company | table | postgres
(1 row)
In settings.py
I have: 在
settings.py
我有:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'testdb1',
'USER': 'postgres',
'PASSWORD': 'admin',
'HOST': 'localhost',
'PORT': '',
}
}
In /etc/postgresql/9.1/main/pg_hba.conf
: 在
/etc/postgresql/9.1/main/pg_hba.conf
:
# Database administrative login by Unix domain socket
local all postgres md5
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local replication postgres peer
#host replication postgres 127.0.0.1/32 md5
#host replication postgres ::1/128 md5
local all postgres md5
EDIT: 编辑:
\\du
command gives: \\du
命令给出:
testdb1=# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------+-----------
archit | Superuser, Create role, Create DB, Replication | {}
postgres | Superuser, Create role, Create DB, Replication | {}
Any help would be appreciated. 任何帮助,将不胜感激。
Drop database and re create database. 删除数据库并重新创建数据库。
In settings.py write 'PORT'='5432' or '5433' as this is the common port in all postgresql. 在settings.py中写'PORT'='5432'或'5433',因为这是所有postgresql中的通用端口。
Then do syncdb or migrate. 然后执行syncdb或迁移。
Since your table was created without the tools of Django. 由于您的表格是在没有Django工具的情况下创建的。 You will need to write down an Model class and set some Metal information about the "custom" name format of your table: https://docs.djangoproject.com/en/1.7/ref/models/options/#table-names
您将需要写下一个Model类,并设置一些有关表的“自定义”名称格式的Metal信息: https : //docs.djangoproject.com/en/1.7/ref/models/options/#table-names
If you can, i recommend you to drop this table and use the Django ORM to build up your database. 如果可以,我建议您删除该表并使用Django ORM建立数据库。 It's more fast and simple than write everything in SQL: https://docs.djangoproject.com/en/1.7/intro/tutorial01/#creating-models
它比用SQL编写所有内容更快,更简单: https : //docs.djangoproject.com/en/1.7/intro/tutorial01/#creating-models
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.