Прежде чем начать выполнять какие-то конкретные запросы к базе данных Indexeddb, важно остановиться на теории, как эта база данных функционирует.

Первое, что нужно понимать, это то, что для взаимодействия с Indexeddb для начала нужно открыть с ней соединение. 

См. схему из видео выше. 

Приложение, которое мы пишем, оно должно отправить запрос на открытие соединения к базе данных. 

Получив такой запрос, Indexeddb отправляет приложению 3 возможных варианта развития событий.

onupgradeneeded (если нужно обновление)

onerror (при ошибке)

onsuccess (при успехе)

Что-то сделать с базой данных мы можем только внутри этих событий.  

onupgradeneeded - в этом событии мы можем взаимодействовать со структурой базы данных. Там мы можем создавать какие-то объектные хранилища, в которых будут храниться пары ключ-значение. Но добавлять пары ключ-значения внутри этого события мы не можем.

onerror - здесь мы можем выводить какую-то информацию об ошибке, если такие возникнут, для пользователя или для разработчика приложения.

onsuccess - здесь мы можем добавлять информацию по изменению, добавлению пар ключ-значение, которые могут храниться в базе данных Indexeddb.

Вот такая логика, в следующих видео мы уже более подробно разберемся в этой логике, что и в какой последовательности работает.