Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 从SQLite切换到postgres,postgres询问密码_Django_Postgresql_Macos_Django Postgresql - Fatal编程技术网

Django 从SQLite切换到postgres,postgres询问密码

Django 从SQLite切换到postgres,postgres询问密码,django,postgresql,macos,django-postgresql,Django,Postgresql,Macos,Django Postgresql,需要注意的两件事:第一,我在虚拟环境运行时执行这些命令。因此,终端显示为(env):。第二,每次我试图进入su postgres时,它都要我输入密码 我正在读一本关于Django(使用mac)的书,书中说: 如果您正在使用macOS,请从下载PostgreSQL并安装它。您还需要安装Python的Psycopg2 PostgreSQL适配器。运行以下命令安装它:pip install Psycopg2==2.7.4 我已经在我的机器上安装了postgres,因为我之前一直在尝试部署一个网站,然后

需要注意的两件事:第一,我在虚拟环境运行时执行这些命令。因此,终端显示为
(env):
。第二,每次我试图进入su postgres时,它都要我输入密码

我正在读一本关于Django(使用mac)的书,书中说: 如果您正在使用macOS,请从下载PostgreSQL并安装它。您还需要安装Python的Psycopg2 PostgreSQL适配器。运行以下命令安装它:
pip install Psycopg2==2.7.4

我已经在我的机器上安装了postgres,因为我之前一直在尝试部署一个网站,然后又回到了我构建的这个示例项目。所以我没有去网站安装它。我按照说明安装了psycopg2(
(env):pip安装psycopg2==2.7.4.

“让我们为PostgreSQL数据库创建一个用户。打开shell并运行以下命令:
su postgres
然后
createuser-dP blog

我认为“打开shell”意味着进入python虚拟shell?因此:

python manage.py shell
然后

这不起作用,它要求我输入密码。退出shell,运行相同的命令
(env):su postgres
,结果相同

从那以后,我想也许因为我在一个虚拟环境中,我必须重新下载
postgres
。我运行了
pip-install-postgres
(不知道这是否会下载一些东西,但它确实下载了,所以我没有去网站/也不知道如何从网站将它安装到这个环境中)。请注意,此版本已安装
postgres
以及
psycopg someversion binary
。现在我已经安装了
psycopg2==2.7.4
和一些版本的
psycopg2二进制文件。从那里我运行了
(env):su postgres
(来自我的环境的注释)。同样的结果,它要求输入密码

然后,我用
python manage.py shell
重新进入python交互式shell,然后再次运行
su postgres
。同样的结果

在这一点上,我试图研究我自己。我读到的内容说,我需要通过在终端输入
sudo-I
从root(?)运行
su-postgres
。我做到了这一点,现在我在贾斯汀MBP:~root#
(这似乎与我试图使用postgres db的django项目毫无关系)。不管怎样,从这里
su-postgres
,你可能已经猜到了,它向我要了密码

非常感谢您对我如何正确切换db的任何帮助


此外,在输入所有这些内容并思考我所做的事情之后,我意识到我还没有更改python项目的数据库设置。但是这本书也没有,所以不确定这个项目是如何知道这个数据库的

您可能还没有在MacOS上设置root用户,请参阅答案。但是,有关使用
su
的更多信息,请参阅答案

您应该在macOS终端中执行此操作的原因是,您在PostrgreSQL数据库上设置、配置和执行数据库操作,而这本身,正如您的书所描述的,与Django(或Python)无关

因此,您必须确保1)在您的设备上安装了PostgreSQL,2)运行了PostgreSQL(因为您将创建用户,这实际上意味着将数据插入到您的PostgreSQL数据库中)。我过去在MacOS上使用(非附属)设置(安装、运行和配置)PostgreSQL

关于Django,您需要在
设置.py中更改
数据库
(另请参见Django教程中的部分)


谢谢,第一个链接帮助我建立了数据库。将它连接到我的django项目,现在它正在(本地)工作。
su postgres
DATABASES = {
    # default namespace
    'default': { 
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'dbname' #name of the database,
        'USER': 'username' #name of the created user,
        'PASSWORD': 'password',
        'HOST': '127.0.0.1' #when local,
        'PORT': '5432' #default psql port,
    }
}