"Django文档"说"确保Django有权创建和更改表",那么如何在postgreSQL中执行此操作?

Col*_*nan 5 django postgresql installation

我正在使用Ruby on Rails和python的EdX类.这让我有勇气尝试使用Apach,mod_wsgi和PostgreSQL来安装和学习Django.以下详细的安装说明,我首先安装Apache,然后安装mod_wsgi,然后安装PostgreSQL.我从源代码安装了每个,并且每个都经过了一些教程,并确保它们已正确安装.我有一个postgres用户设置来运行PostgreSQL服务器,我能够为自己创建一个用户"角色"以及我的角色继承的管理员角色,可以创建数据库等.我尝试了一些SQL in psql遵循制作表等的教程.我知道如何为给定角色授予权限.

所以无论如何,我非常接近从源代码实际安装Django的步骤,但我不确定如何遵循安装说明中的建议:

如果您计划使用Django的manage.py syncdb命令为模型自动创建数据库表,则需要确保Django有权在您正在使用的数据库中创建和更改表; 如果您打算手动创建表,则可以简单地授予Django SELECT,INSERT,UPDATE和DELETE权限.

也许在我按照实际安装Django并执行一些教程的步骤之后,我将完全明白需要在PostgreSQL中设置什么来授予Django这些权限,但是如果我按顺序按照安装说明进行操作,那么它似乎就是在说我应该在安装Django之前设置这些权限.如果我在安装Django之前可以让某人告诉我如何在这里做,我会很感激.

sup*_*er9 8

settings.pydjango项目的文件中,有一段代码如下:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'myproj_db',
        'USER': 'myproj_user',
        'PASSWORD': '123',
        'HOST': '',
        'PORT': '',
    },
}
Run Code Online (Sandbox Code Playgroud)

这样做是告诉Django什么用户(在这种情况下是postgres用户)和数据库与你的django项目一起使用.

通常,您需要myproj_user与之一起创建myproj_db.

创建此用户时,您可以选择为其授予权限:

CREATE USER myproj_user WITH PASSWORD '123' SUPERUSER CREATEDB CREATEROLE LOGIN;

这将创建myproj_user具有超级用户,createdbm createrole,允许用户的登录权限.

然后像这样的数据库:

CREATE DATABASE myproj_db WITH OWNER myproj_user TEMPLATE=template1 ENCODING='utf-8';