My unittests are extending from django.test.TestCase
. Using an SQLite3 backend, they are running fine.
I want to run them with a PostgreSQL backend, and the first thing that the tests are doing is to try and create a test database. This fails, since django has no permissions to do this. I want to configure PostgreSQL / django so that this operation is allowed, but I can not find any documentation on how to do this.
These are the settings used to connect to the database (settings.py
):
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'mydb',
'USER': 'myuser',
'PASSWORD': 'myppasss',
'HOST': 'localhost',
'PORT': '',
}
}
When running the django application, I have always a pre-created database and user, so that django can connect.
I have two questions:
TEST
key in the DATABASES
config parameter), but those settings mostly refer to Oracle databases, and have a different purpose.Django will use the same connection settings as in your settings.py for tests, but will use a different database (by default, test_mydb
where your regular database is mydb
).
You can change the django user permissions to create databases in the psql shell. See this related answer for more info.
=> ALTER USER myuser CREATEDB;
I don't know whether it's possible to restrict the permission so that the django user can only create the database test_mydb
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With