Я изо всех сил пытаюсь увидеть, как некоторые INSERT отражаются в базе данных SQLite при использовании SQLite.swift.
Я отлаживаю свое приложение iOS с помощью точек останова и после вставки экспортирую контейнер приложения (с устройства) на жесткий диск хоста. Затем я проверяю базу данных SQLite, чтобы увидеть изменения. INSERT не отражаются таким образом.
Если я добавлю дополнительный код, такой как SELECT, в таблицу или перезапущу приложение, то запись будет там, поэтому похоже, что консолидация на диск на устройстве происходит не сразу, а в какой-то другой момент. Я использую один объект Connection
и нет одновременных доступов, поэтому я не ожидаю проблем с потоками. Я также пытался использовать INSERT внутри транзакции, но все еще не отражал контейнер.
Когда изменения консолидируются на диск, чтобы он действительно сохранялся? Есть ли способ принудительно сбросить? Что произойдет, если приложение неожиданно завершится, могут ли данные быть потеряны, потому что на самом деле их не было в базе данных?