您好我是postgreSQL的新手,请指导我一下
我有一个django项目
这里是settings.py:
DATABASES = {
"default": {
"ENGINE": "django.db.backends.postgresql_psycopg2",
"NAME": "testfor_psl",
"USER": "",
"PASSWORD": "",
"HOST": "localhost",
"PORT": "",
}
}
我运行python manage.py syncdb
有错误:
OperationalError: FATAL: database "testfor_psl" does not exist
那么如何创建db?
我使用posgreSQL.app,然后点击Open psql
有这样一个终端:
我输入help
,没有任何反应
请帮我。感谢
答案 0 :(得分:3)
您需要将;
放在psql commad的末尾。如你所见,在命令之后
winsome=# CREATE DATABASE testfor_psl
提示已从=#
更改为-#
。这意味着,psql仍然通过提供;
等待命令完成。
此外,最好为django项目创建数据库用户。所以你需要做什么:
在数据库中创建用户(在psql中):
CREATE USER testfor_psl_user WITH password 'pass';
使用所有者等于该用户创建数据库:
CREATE DATABASE testfor_psl ENCODING 'UTF8' TEMPLATE template0 OWNER testfor_psl_user;
在django项目设置中设置凭据:
DATABASES = {
"default": {
"ENGINE": "django.db.backends.postgresql_psycopg2",
"NAME": "testfor_psl",
"USER": "testfor_psl_user",
"PASSWORD": "pass",
"HOST": "localhost",
"PORT": "5432", # default port
}
}
答案 1 :(得分:0)
help
没有效果的原因是你已经在编写命令的过程中。 SQL命令必须以分号终止。请注意psql
提示 - 看看它从=#
变为-#
的方式?这表明你正处于命令的中间。请参阅In psql, why do some commands have no effect?。
如果你的命令没有中途,输入help
会显示:
mydbname=> help
You are using psql, the command-line interface to PostgreSQL.
Type: \copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit
现在...... here's the manual for the psql
command。
有关psql
自我使用\?
的摘要帮助。
有关SQL命令的列表,请使用\h
。
有关特定命令的帮助,请使用\h COMMAND NAME
,例如\h CREATE DATABASE
了解如何使用CREATE DATABASE
命令。有关命令的更多详细信息,请阅读手册,例如: the manual on CREATE DATABASE
Here's the PostgreSQL tutorial,其中包括入门。