我正在设置Django项目为running tests
。但我得到以下错误:Django测试:错误创建测试数据库:权限被拒绝复制数据库“template_postgis”
Got an error creating the test database: permission denied to copy database "template_postgis"
注意:我的默认应用程序的数据库工作正常。该issue is happening while running tests
。
完整的堆栈跟踪是:
[email protected]:~/workspace/mozio$ python manage.py test --verbosity=3
nosetests --verbosity=3
nose.config: INFO: Ignoring files matching ['^\\.', '^_', '^setup\\.py$']
Creating test database for alias 'default' ('test_my_db')...
Got an error creating the test database: permission denied to copy database "template_postgis"
Type 'yes' if you would like to try deleting the test database 'test_mozio_db_test', or 'no' to cancel: yes
Destroying old test database 'default'...
Got an error recreating the test database: must be owner of database test_mozio_db_test
下面是setting.py
数据库配置:
POSTGIS_VERSION = (2, 2, 2)
DATABASES = {
'default': {
'ENGINE': 'django.contrib.gis.db.backends.postgis',
'NAME': 'my_db',
'USER': 'my_user',
'PASSWORD': 'my_pass',
'HOST': '<HOST_IP',
'PORT': '',
'TEST': {
'NAME': 'test_my_db',
},
}
}
对此任何帮助吗?下面是我试过的步骤:
格兰特创建用户DB访问:
ALTER USER my_user CREATEDB;
授予所有的权限,以用户为
test_my_db
数据库:GRANT ALL PRIVILEGES ON DATABASE test_mozio_db_test to mozio;
Edi牛逼: 上述问题固定后,我也越来越误差:
django.db.utils.ProgrammingError: type "geometry" does not exist
LINE 5: "polygon" geometry(POLYGON,4326) NOT NULL,
更新我的答案来解决这两个问题。
我已经添加了答案。在我的系统上安装了所有东西,默认的应用程序连接正常但问题只在于测试数据库。 –
@Moinuddin错误,它说你正在访问自动创建的模板数据库。我不知道你为什么要访问它们,但更好地创建自己的数据库并将其链接到settings.py – Sagar
但是,如果你对你的答案感到满意,那没关系。 – Sagar