Django 使用Postgres Shell创建用户

Django 使用Postgres Shell创建用户,django,postgresql,windows-10,psql,Django,Postgresql,Windows 10,Psql,我将遵循本书中的教程: 梅莱,安东尼奥。Django 2举例:从头开始构建功能强大且可靠的Python web应用程序(Kindle位置1917-1918)。 Packt出版公司。Kindle版 我在这一部分: 将全文搜索添加到您的博客 安装PostgreSQL 我使用的是Windows 10,我安装的Postgres很好。说明中说要在postgres shell中键入内容: su postgres createuser -dP blog 我想我正在尝试创建一个名为blog的用户,该用

我将遵循本书中的教程:

梅莱,安东尼奥。Django 2举例:从头开始构建功能强大且可靠的Python web应用程序(Kindle位置1917-1918)。 Packt出版公司。Kindle版

我在这一部分:

  • 将全文搜索添加到您的博客
    • 安装PostgreSQL
我使用的是Windows 10,我安装的Postgres很好。说明中说要在postgres shell中键入内容

su postgres
createuser -dP blog
我想我正在尝试创建一个名为
blog
的用户,该用户将拥有密码并允许创建数据库

当我这样做时,我得到:

Server [localhost]: su postgres
Database [postgres]: createuser -dP blog
Port [5432]:
Username [postgres]:
psql: warning: extra command-line argument "postgres" ignored
psql: warning: extra command-line argument "-d" ignored
psql: warning: extra command-line argument "createuser" ignored
psql: warning: extra command-line argument "-dP" ignored
psql: warning: extra command-line argument "blog" ignored
psql: warning: extra command-line argument "-p" ignored
psql: warning: extra command-line argument "5432" ignored
psql: could not translate host name "su" to address: Unknown host
Press any key to continue . . .

我不知道该做什么,或者到底发生了什么?指令非常不清楚

看起来您试图在psql、
su postgres
createuser-dP blog
中使用命令,这些命令都是为类似bash的shell设计的
su postgres
表示切换postgres操作系统用户,而
createuser
命令是创建数据库用户的shell命令。但是,如果您在psql中,则无法访问该命令

当psql请求数据库连接信息时,您似乎正在输入这些命令,因此即使您向它发送sql/psql命令,在这一点上也不起作用

下面是有关
createuser
命令的详细信息。从系统外壳中使用此命令创建数据库用户


下面是关于
创建角色的说明。这就是如何从psql中创建用户。

createuser
是从命令行发出的命令。由于您在Windows上,这意味着它是一个.exe文件,可能位于安装Postgres的位置的bin目录中。在命令提示或powershell提示下,使用
createuser-dP blog


此外,您可能必须向
createuser.exe
提供
-h localhost-p 5432-U postgres-W密码,以使其能够与服务器通信。

我在阅读William S.Vincent的《Django for Professionals》时也是这样做的

单击PostgreSQL的安装后,它会要求您输入密码。类型:postgres 安装完数据库后,转到项目的设置.py,注释掉旧数据库:

# DATABASES = {
#     'default': {
#         'ENGINE': 'django.db.backends.sqlite3',
#         'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
#     }
# }
并粘贴文本:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'postgres',
        'USER': 'postgres',
        'PASSWORD': 'postgres',
        'HOST': '127.0.0.1',
        'PORT': '5432',
    }
}

就这样!我节省了你的时间!现在你欠我的

这本书应该适用于任何操作系统,我认为这只是作者的疏忽——它只是说打开外壳。我可以使用pgAdmin,我有一个Mac,我在上面使用postgres,但我想知道windows psql shell的情况如何?端口:5432,引擎:'django.db.backends.postgres_psycopg2'-没有psycopg2,您可能会面临许多不必要的错误!