繁体   English   中英

Django:如何访问测试数据库?

[英]Django: How to access test database?

我在Django 1.8工作。 我有一个Django管理命令来在我的数据库上创建物化视图,如下所示:

python manage.py create_db_matviews $DB_NAME $DB_USER $DB_PASS

现在我想从我的测试中运行管理命令,以便我可以测试命令。 (我的实际数据库非常大,管理命令非常慢,所以我想测试数据而不是真实数据。)

但是,从我的测试文件中调用管理命令不起作用 - 不出所料,因为我不知道要使用哪些凭据:

def setUpModule():
    management.call_command('loaddata', 'frontend/fixtures/mydata.json',
                        verbosity=0)
    # load fixtures, then... 
    management.call_command('create_db_matviews',
                            'default', 'default', 'randomguess', 
                            verbosity=0)

它失败如下:

Creating test database for alias 'default' ('test_prescribing')...
... running migrations...  
======================================================================
ERROR: setUpModule (frontend.tests.test_api_views)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/.../tests/test_api_views.py", line 23, in setUpModule
    verbosity=0)
  File "/Users/.../.virtualenvs/openprescribing/lib/python2.7/site-packages/django/core/management/__init__.py", line 115, in call_command
    return klass.execute(*args, **defaults)
  File "/Users/.../.virtualenvs/openprescribing/lib/python2.7/site-packages/django/core/management/base.py", line 338, in execute
    output = self.handle(*args, **options)
  File "/Users/.../frontend/management/commands/create_indexes_and_matviews.py", line 19, in handle
    password=db_pass)
  File "/Users/.../.virtualenvs/openprescribing/lib/python2.7/site-packages/psycopg2/__init__.py", line 164, in connect
    conn = _connect(dsn, connection_factory=connection_factory, async=async)
OperationalError: FATAL:  role "default" does not exist

我应该使用哪些凭据来访问测试数据库?

Django文档的这一部分有详细信息。

基本上,测试数据库的名称是根据您的设置文件,但有test_前缀,用户和密码作为您的设置文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM