Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.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
Python 将Django从SQLite转换为PostgreSQL_Python_Django_Postgresql - Fatal编程技术网

Python 将Django从SQLite转换为PostgreSQL

Python 将Django从SQLite转换为PostgreSQL,python,django,postgresql,Python,Django,Postgresql,我不熟悉Python和Django。我买了一本书,Django 3 by example(第三版),非常喜欢这本书。我现在在第3章,目标是增强搜索引擎的功能。为了做到这一点,本书提供了将DB转换为PostgreSQL的步骤。我正在遵循下面的指示,我已经尝试了几种方法来解决我在谷歌上发现的问题。我似乎找不到答案 步骤: 安装PostgreSQL:sudo apt get安装PostgreSQL PostgreSQL contrib 安装psycopg2:pip安装psycopg2二进制文件==2.

我不熟悉Python和Django。我买了一本书,Django 3 by example(第三版),非常喜欢这本书。我现在在第3章,目标是增强搜索引擎的功能。为了做到这一点,本书提供了将DB转换为PostgreSQL的步骤。我正在遵循下面的指示,我已经尝试了几种方法来解决我在谷歌上发现的问题。我似乎找不到答案

步骤:

  • 安装PostgreSQL:sudo apt get安装PostgreSQL PostgreSQL contrib
  • 安装psycopg2:pip安装psycopg2二进制文件==2.8.4
  • 为PostgreSQL数据库创建用户。打开shell并运行以下命令。 a) 苏博士后 b) createuser-dP博客
  • 输入新用户的密码,然后创建博客数据库,并将所有权授予刚刚使用以下命令创建的博客用户:createdb-E utf8-U blog blog
  • 编辑settings.py文件。。。省略步骤
  • 我被困在上面的第3a步。有人问我博士后的密码,但似乎什么都没用。我也尝试过谷歌上的一些东西。这是我试过的

    sudo -u postgres psql
    \password postgres
    enter and confirm password
    \q
    

    尝试使用su postgres重新登录,并出现su身份验证错误。

    您将系统用户postgres与数据库用户postgres混淆
    sudo-u postgres psql
    以系统用户postgres(the
    -u
    )的身份运行一个
    psql
    会话,并以数据库用户postgres的身份登录。如果未指定数据库用户('-U'),则
    psql
    的默认数据库用户是启动它的系统用户。运行
    \password postgres
    然后为数据库用户postgres创建密码。完成后,您可以通过
    psql
    以数据库用户postgres的身份从任何系统用户帐户登录。因此,在您的个人用户帐户中:
    psql-d postgres-U postgres
    。系统将提示您输入密码,请使用您创建的密码。有关更多信息,请参阅和

    我能找到的关于它的最佳资源是关于如何在ubuntu中进行此配置

    这里总结一些步骤:

    • 登录到psql命令行界面,将角色从sudo user更改为postgres,然后打开psql命令行提示符

      user@ubuntu$ sudo -i -u postgres
      postgres@ubuntu# psql
      
    • 在psql内部创建一个新用户,用于django应用程序

      CREATE ROLE djangouser WITH ENCRYPTED PASSWORD '&%mysupersecurepasswordthatc4ndiff!culh4ck3rsbruteforce!$';
      
    • 向用户djangouser授予登录权限

      ALTER ROLE "djangouser" WITH LOGIN; --use double quotes here
      
    • 在数据库中创建一个用于保存数据的

      CREATE DATABASE blog;
      
    • 将数据库日志中的权限授予数据库用户
      djangouser

       GRANT ALL PRIVILEGES ON DATABASE blog TO djangouser;
      
    现在您的postgres数据库已正确配置

    如果您在创建新角色时遇到任何问题,以下是解决方法


    现在,您可以收集有关数据库名称、用户和密码的信息,以使用正确的值配置settings.py以组装连接字符串。

    请尝试
    sudo su postgres