postgreSQL.app:创建数据库

时间:2014-10-02 07:29:27

标签: django postgresql

您好我是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,没有任何反应 请帮我。感谢

enter image description here

2 个答案:

答案 0 :(得分:3)

您需要将;放在psql commad的末尾。如你所见,在命令之后

winsome=# CREATE DATABASE testfor_psl

提示已从=#更改为-#。这意味着,psql仍然通过提供;等待命令完成。

此外,最好为django项目创建数据库用户。所以你需要做什么:

  1. 在数据库中创建用户(在psql中):

    CREATE USER testfor_psl_user WITH password 'pass';
    
  2. 使用所有者等于该用户创建数据库:

    CREATE DATABASE testfor_psl ENCODING 'UTF8' TEMPLATE template0 OWNER testfor_psl_user;
    
  3. 在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,其中包括入门。