Django 内存模型,不用于测试

Django in-memory model, not for tests

我有一个模型,它的实例永远不需要写入数据库。它们是动态生成的,成本非常低,而且几乎从不改变。

我希望通过 ORM 查询这些实例,并在 django-admin 中浏览它们(只读 + mass_actions,不需要 CRUD)。

据我所知,SQLite 在 运行 测试时使用内存数据库。我想我想使用这个功能,只是不限于测试。

另一种选择可能是纯内存模型后端,但我没有找到。实际上我确实找到了这个项目:https://github.com/felipecruz/dmqs 不过它看起来有点过时了。

或者也许有一个缓存后端可以做到这一点?

您必须使用特殊文件名 :memory: 来指示 sqlite 使用内存数据库。

DATABASES = {
  'default': {
    'ENGINE': 'django.db.backends.sqlite3',
    'NAME': ':memory:',
  }
}

应该可以解决问题。