2016-07-07 2 views
1

У меня есть модель, экземпляры которой не обязательно должны быть записаны в базу данных. Они генерируются «на лету», очень дешево и почти никогда не меняются.Модель Django в памяти, а не для тестов

Я хочу запросить эти экземпляры через ORM, а также просмотреть их в django-admin (только для чтения + mass_actions, нет необходимости в CRUD).

Из того, что я собрал, SQLite использует базу данных в памяти при выполнении тестов. Я думаю, что хочу использовать эту функцию, не ограничиваясь только тестами.

Другим вариантом может быть чистая память в памяти, но я не нахожу ее. На самом деле я нашел этот проект: https://github.com/felipecruz/dmqs Он выглядит немного устаревшим.

Или, может быть, есть кеширование, которое может это сделать?

ответ

1

Вы должны использовать специальное имя файла: memory: для указания sqlite использовать базу данных в памяти.

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

должен сделать трюк.

+0

Также см. Https://www.sqlite.org/inmemorydb.html – Chamindu

+0

Ha! Это выглядит отлично! Спасибо, скоро попробую. – frnhr