本文档中包含一些附加说明和设置 PostGIS 用户。
备注
下面的设置有合理的默认值,不需要手动设置。
POSTGIS_VERSION
¶当geodjango的空间后端在postgis上初始化时,它必须执行一个SQL查询来确定版本,以便找出可用的特性。希望阻止此附加查询的高级用户可以使用指定PostGIS的主版本号、次版本号和微版本号的三元组手动设置版本。例如,要配置postgis x.y.z,您将使用:
POSTGIS_VERSION = (X, Y, Z)
根据您的配置,本节描述了几种方法来配置具有足够权限的数据库用户,以便在PostgreSQL上运行geodjango应用程序测试。如果你 spatial database template 是按照说明创建的,那么您的测试数据库用户只需要具备创建数据库的能力。在其他配置中,可能需要使用数据库超级用户。
要使数据库用户能够创建数据库,请使用以下命令:
$ createuser --createdb -R -S <user_name>
这个 -R -S
标志表示我们不希望用户能够分别创建其他用户(角色)或成为超级用户。
或者,您可以从SQLShell更改现有用户的角色(假设这是通过现有超级用户帐户完成的):
postgres# ALTER ROLE <user_name> CREATEDB NOSUPERUSER NOCREATEROLE;
这可以在创建用户时完成,例如:
$ createuser --superuser <user_name>
或者,您可以从SQLShell更改用户的角色(假设这是通过现有的超级用户帐户完成的):
postgres# ALTER ROLE <user_name> SUPERUSER;
在Windows平台上,可以使用pgAdmin III实用程序向数据库用户添加超级用户权限。
默认情况下,Windows上的PostGIS安装程序包含一个名为 template_postgis
.
在以下情况下执行geodjango测试: running the Django test suite 具有 runtests.py
设置文件中的所有数据库都必须使用 spatial database backends .
下面是一个具有空间后端的裸骨设置文件示例,可用于运行整个Django测试套件,包括 django.contrib.gis
::
DATABASES = {
"default": {
"ENGINE": "django.contrib.gis.db.backends.postgis",
"NAME": "geodjango",
"USER": "geodjango",
},
"other": {
"ENGINE": "django.contrib.gis.db.backends.postgis",
"NAME": "other",
"USER": "geodjango",
},
}
SECRET_KEY = "django_tests_secret_key"
假设上面的设置在 postgis.py
文件位于与相同的目录中 runtests.py
,则在执行命令时将执行所有Django和GeoDjango测试:
$ ./runtests.py --settings=postgis
要只运行GeoDjango测试套件,请指定 gis_tests
:
$ ./runtests.py --settings=postgis gis_tests
12月 18, 2023