gpt4 book ai didi

django - 为什么 django test --keep-db 适用于 postgres 数据库但不适用于默认的 sqlite3

转载 作者:行者123 更新时间:2023-11-29 14:04:10 24 4
gpt4 key购买 nike

我正在两种数据库设置中测试 Django (v1.11.4) 应用程序:1)在docker容器中运行的postgres数据库或者2) sqlite3 as (默认数据库)

当使用 --keepdb 选项运行测试时,我观察到这两个设置的不同行为:对于 postgres --keepdb 按预期工作(没有数据库创建和运行测试速度很快)但是对于 sqlite3 数据库 --keepdb 似乎不起作用(每次运行测试都会创建数据库)。--keepdb 是否可以与 sqlite3 一起使用?如果是这样,您知道哪些设置可能会影响上述行为吗?

最佳答案

默认情况下,Django uses an in-memory database when testing sqlite .这意味着测试数据库不是持久的。您可以通过指定测试名称在 DATABASES 设置中覆盖此行为:

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite',
'NAME': 'db.sqlite3',
'TEST': {
'NAME': 'testdb.sqlite3',
},
},
}

关于django - 为什么 django test --keep-db 适用于 postgres 数据库但不适用于默认的 sqlite3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45756634/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com