我有一个Django应用,该应用可以在Elephantsql.com在线添加并显示东西到我的postgresql数据库中。我的项目文件设置如下:
website/
website/
music/
playlist/
__pycache__/
migrations/
static/
templates/
__init__.py
admin.py
apps.py
models.py
tests.py
urls.py
views.py
.coverage
db.sqlite3
manage.py
我的项目现在可以正常运行,当我运行服务器并转到/ playlist /时,它可以正确显示内容并正确连接到我的postgresql数据库。
我的settings.py DATABASES对象如下:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'kxvmghva',
'USER': 'kxvmghva',
'PASSWORD': '--an actual password---',
'HOST': 'raja.db.elephantsql.com',
'PORT': '5432',
}
}
现在,我正在尝试在playlist / tests.py文件中编写测试用例,但是当我尝试运行这些测试时,却遇到了错误。
我正在尝试运行/playlist/tests.py的测试文件
from django.test import TestCase
from .models import plays
from django.utils import timezone
class AnimalTestCase(TestCase):
def setUp(self):
print("setup")
#Animal.objects.create(name="lion", sound="roar")
#Animal.objects.create(name="cat", sound="meow")
def test_animals_can_speak(self):
"""Animals that can speak are correctly identified"""
print("test")
#lion = Animal.objects.get(name="lion")
#cat = Animal.objects.get(name="cat")
#self.assertEqual(lion.speak(), 'The lion says "roar"')
#self.assertEqual(cat.speak(), 'The cat says "meow"')
当我运行命令“ python manage.py test播放列表”时,出现以下错误:
C:\Users\marti\Documents\kexp\website>python manage.py test playlist
Creating test database for alias 'default'...
C:\Python36-32\lib\site-packages\django\db\backends\postgresql\base.py:267: 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 default database instead.
RuntimeWarning
Got an error creating the test database: permission denied to create database
Type 'yes' if you would like to try deleting the test database 'test_kxvmghva', or 'no' to cancel:
如果我输入“是”,则会导致此错误:
Destroying old test database for alias 'default'...
Got an error recreating the test database: database "test_kxvmghva" does not exist
我一直在尝试通过在线搜索来解决此错误,并尝试过诸如授予用户'kxvmghva'CREATEDB权限以及在我的Elephantsql数据库中运行此行之类的事情:
将SCHEMA中所有表上的所有特权授予kxvmghva;
但是,当尝试为我的播放列表/应用程序运行tests.py文件时,我仍然遇到这些错误。这是我第一次在django中为Postgresql数据库设置测试用例,我非常感谢任何帮助或指导。谢谢。
答案 0 :(得分:0)
如果您没有创建其他数据库的权限,我想您用于数据库的计划是免费/共享的。
这不是Django问题,而是您正在使用的服务的限制。