Тестирование приложений GeoDjango ¶
В этой документации вы найдете дополнительные примечания и настройки для пользователей PostGIS .
PostGIS ¶
Настройки ¶
Заметка
Приведенные ниже настройки имеют разумные значения по умолчанию и, как правило, не требуют установки вручную.
POSTGIS_VERSION
¶
Когда пространственный движок GeoDjango инициализируется с помощью PostGIS, он должен выполнить SQL-запрос, чтобы определить версию, чтобы узнать, какие функции доступны. Опытные пользователи, желающие избежать этого дополнительного запроса, могут установить версию вручную с помощью целочисленного кортежа из трех частей, указывающего основной, дополнительный и микро номера версии PostGIS. Например, чтобы указать, что версия PostGIS - XYZ, вы должны написать:
POSTGIS_VERSION = (X, Y, Z)
Получение необходимых привилегий ¶
В зависимости от вашей конфигурации в этом разделе описывается несколько методов настройки пользователя базы данных с достаточными привилегиями для запуска тестов для приложений GeoDjango с PostgreSQL. Если ваша модель пространственной базы данных была создана в соответствии с инструкциями, достаточно, чтобы пользователь тестовой базы данных имел права на создание баз данных. В других конфигурациях вам может потребоваться использовать суперпользователя базы данных.
Создание пользователя базы данных ¶
Чтобы создать пользователя базы данных с разрешением на создание баз данных, используйте следующую команду:
$ createuser --createdb -R -S <user_name>
Флаги соответственно указывают на то, что мы не хотим, чтобы пользователь мог создавать других пользователей (или роли) или быть суперпользователем.-R -S
Другая возможность - изменить роль существующего пользователя из оболочки SQL (при условии, что это делается из учетной записи суперпользователя):
postgres# ALTER ROLE <user_name> CREATEDB NOSUPERUSER NOCREATEROLE;
Создание суперпользователя базы данных ¶
Это можно сделать при создании пользователя, например:
$ createuser --superuser <user_name>
Или вы можете изменить роль пользователя из оболочки SQL (при условии, что это делается из существующей учетной записи суперпользователя):
postgres# ALTER ROLE <user_name> SUPERUSER;
Окна ¶
В Windows вы можете использовать утилиту pgAdmin III для добавления привилегий суперпользователя пользователю базы данных.
По умолчанию установщик PostGIS в Windows включает именованную пространственную модель базы данных template_postgis
.
GeoDjango тесты ¶
Для запуска тестов GeoDjango при запуске с ним набора тестов Djangoruntests.py
все базы данных, определенные в файле настроек, должны использовать один из механизмов пространственной базы данных .
Пример ¶
В следующем примере показан файл с минимальными настройками, определяющий пространственные механизмы, которые можно использовать для запуска полного набора тестов 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