Sto tentando di eseguire test su un'applicazione GIS Django che esegue PostGIS come back-end del database.Testare l'app Django con il backend Postgis
Quando si tenta di eseguire i test, ottengo il seguente errore:
django.db.utils.ProgrammingError: permission denied to create extension "postgis"
HINT: Must be superuser to create this extension.
L'errore ha un senso. Solo gli utenti del database admin possono installare estensioni poiché questo privilegio consente l'esecuzione di codice esterno arbitrario. MA poiché il test runner deve ricreare il database ogni volta che vengono eseguiti i test, l'utente del database di Django non può procedere.
Ecco la configurazione del mio database.
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',
},
}
Ha funzionato come un fascino. Sei re. – bbrame
Esegui: 'sudo -u postgres psql -d template1 -c" CREA ESTENSIONE SE NON ESISTE postgis; "' –