我正在看这本书的一个教程:
梅勒,安东尼奥。 Django 2 by Example:从头开始构建功能强大且可靠的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 . . .
我不确定该怎么办或到底发生了什么?指令还不清楚
答案 0 :(得分:2)
您似乎正在尝试在psql中使用命令su postgres
和createuser -dP blog
,这些命令是用于shell之类的bash。 su postgres
表示要切换postgres OS用户,而createuser
命令是用于创建数据库用户的shell命令。但是,如果您在psql中,则无法访问该命令。
当psql询问数据库连接信息时,您似乎也在键入这些命令,因此,即使您发送的是sql / psql命令,在那一刻也不起作用。
这是createuser
命令上的PostgreSQL Documentation。从系统外壳使用此命令来创建数据库用户。
这是CREATE ROLE
上的PostgreSQL Documentation。这是从psql中创建用户的方式。
答案 1 :(得分:1)
createuser
是要从命令行给出的命令。由于您使用的是Windows,这意味着它是一个.exe文件,该文件可能位于安装Postgres的位置的bin目录中。在命令提示符或Powershell提示符下,使用createuser -dP blog
。
另外,您可能必须向-h localhost -p 5432 -U postgres -W password
提供createuser.exe
才能使其与服务器通信。
答案 2 :(得分:1)
我做的就像阅读William S. Vincent的Django for Professionals一样。
一旦您单击PostgreSQL的安装,它将要求您输入密码。类型: postgres 完成数据库安装后,转到项目的 settings.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',
}
}
就是这样!我节省了您的时间!现在你欠我了!