Próbuję uruchomić testy na aplikacji GIS Django z uruchomionym PostGIS jako zapleczem bazy danych.Testowanie aplikacji Django za pomocą Postgis Backend
Gdy próbuję uruchomić testy, pojawia się następujący błąd:
django.db.utils.ProgrammingError: permission denied to create extension "postgis"
HINT: Must be superuser to create this extension.
Błąd sens. Tylko administratorzy bazy danych mogą instalować rozszerzenia, ponieważ ten przywilej pozwala na wykonanie dowolnego kodu zewnętrznego. ALE ponieważ tester musi ponownie utworzyć bazę danych za każdym razem, gdy testy zostaną uruchomione, użytkownik bazy danych Django nie może kontynuować.
Oto moja konfiguracja bazy danych.
DATABASES = {
'default': {
'ENGINE': 'django.contrib.gis.db.backends.postgis',
'NAME': 'my_db',
'USER': 'my_user',
'PASSWORD': 'my_crazy_secure_password',
'HOST': '127.0.0.1',
'PORT': '',
'TEST_NAME': 'test_my_db',
},
}
Pracował jak urok. Jesteś królem. – bbrame
Uruchom: 'sudo -u postgres psql -d szablon1 -c" UTWÓRZ PRZEDŁUŻENIE, JEŚLI NIE ISTNIEJE postgis; "' –