Mam sobie projekt w django i chciałem do niego pisać testy. Problem w tym, że przy próbie uruchomienia mam komunikat:
RuntimeWarning: Normally Django will use a connection to the 'postgres' database to avoid running initialization queries against the production database when it's not needed (for example, when running tests). Django was unable to create a connection to the 'postgres' database and will use the first PostgreSQL database instead. RuntimeWarning Got an error creating the test database: permission denied to create database
Baza danych jest na zewnętrznym serwerze (zakładałem sobie bazę na elephant sql). Z poziomu konsoli wchodzę sobie do bazy danych i robię:
@mcnight95: settingsy są ustawione poprawnie i jak z poziomu apki robię wpis do bazy to wszystko jest ok. Problem w tym że do testów django tworzy sobie nową bazę i nie wiem jak nadać uprawnienie do ich tworzenia.
Jak to nic nie da to stworzę bazę na lokalnym serwerze, ale byłoby to przyznanie się do porażki.
@mcnight95: dobra już widzę co go boli. Elephant sql pozwala na zakładanie jednej bazy danych. Żeby ogarnąć bazę do testów to muszę w elephancie stworzyć drugą.
@IsambardKingdomBrunel: Może zacznijmy od podstaw: podany uprzednio przeze mnie "ALTER USER user CREATEDB" określa nadanie praw użytkownikowi o nazwie 'user'! tu dajesz nazwę użytkownika np. mietek. Tylko administrator bazy danych tj. najczęściej użytkownik o nazwie 'postgres' ma prawa do wszystkich opcji serwera. Robisz to z konsoli 'psql' albo posłuż się PgAdminIII. PostgreSQL serv. najczęściej nasł#!$%@? na porcie 5432, chyba, że inaczej zadeklarujesz w postgresql.conf lub pg_hba.conf. Zacznij od poznania postgresa skoro
#postgresql
#python
#django
#naukaprogramowania
Mam taki problem:
Mam sobie projekt w django i chciałem do niego pisać testy. Problem w tym, że przy próbie uruchomienia mam komunikat:
RuntimeWarning: Normally Django will use a connection to the 'postgres' database to avoid running initialization queries against the production database when it's not needed (for example, when running tests). Django was unable to create a connection to the 'postgres' database and will use the first PostgreSQL database instead.
RuntimeWarning
Got an error creating the test database: permission denied to create database
Baza danych jest na zewnętrznym serwerze (zakładałem sobie bazę na elephant sql). Z poziomu konsoli wchodzę sobie do bazy danych i robię:
ALTER USER user CREATEDB;
no i permission denied.
potem wpisałem:
GRANT ALL PRIVILEGES ON DATABASE base TO user;
ale nic to nie dało.
Jak nadać poprawnie uprawnienia?
Jak to nic nie da to stworzę bazę na lokalnym serwerze, ale byłoby to przyznanie się do porażki.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'xxxx',
'USER': 'xxxx',
'PASSWORD': 'secret',
'HOST': 'elmer.db.elephantsql.com',
'PORT': '1111',
'TEST': {
'NAME': 'test_xxxx',
}
},
}
Może zacznijmy od podstaw:
podany uprzednio przeze mnie "ALTER USER user CREATEDB" określa nadanie praw użytkownikowi o nazwie 'user'! tu dajesz nazwę użytkownika np. mietek.
Tylko administrator bazy danych tj. najczęściej użytkownik o nazwie 'postgres' ma prawa do wszystkich opcji serwera.
Robisz to z konsoli 'psql' albo posłuż się PgAdminIII.
PostgreSQL serv. najczęściej nasł#!$%@? na porcie 5432, chyba, że inaczej zadeklarujesz w postgresql.conf lub pg_hba.conf.
Zacznij od poznania postgresa skoro