Программирование и базы данных
SQLite
11 статей с причинами, проверками и пошаговыми решениями. Например: database is locked; unable to open database file.
SQLITE_BUSY
SQLite: «database is locked» (SQLITE_BUSY) — причины и исправление
`SQLITE_BUSY` означает конфликт доступа к файлу базы. Сначала завершите зависшие транзакции и задайте `busy_timeout` на каждом соединении; WAL включайте отдельно при рез…
SQLite: UNIQUE constraint failed при вставке записи — причины и решение
Запись нарушает ограничение уникальности: такое значение уже есть в столбце. Ниже — причины и порядок действий от простого к сложному.
SQLite: attempt to write a readonly database — причины и решение
Файл или каталог базы недоступны для записи пользователю веб-сервера. Выдайте права на файл и каталог (нужны для журнала).
SQLite: database disk image is malformed — причины и решение
Файл базы повреждён: сбой диска, прерванная запись или копирование во время работы. Ниже — причины и порядок действий от простого к сложному.
SQLite: no such table — таблица не найдена — причины и решение
Ошибка значит, что в открытой базе нет такой таблицы: открыт другой файл, миграции не выполнены, таблица названа иначе или база создалась пустой из-за неверного пути. Ни…
SQLite: unable to open database file — причины и решение
SQLite не может открыть файл базы: путь неверный, нет каталога, нет прав на запись в каталог (нужно для временных файлов) либо диск только для чтения. Ниже — причины и п…
SQLite: database is locked при одновременной записи — причины и решение
Ошибка SQLite «database is locked» (SQLITE_BUSY) возникает при параллельной записи. Включите режим WAL, задайте busy_timeout, сократите длительность транзакций, избегайт…
SQLite: FOREIGN KEY constraint failed — причины и решение
Нарушено ограничение внешнего ключа: связанной записи нет или она удаляется. Проверьте порядок вставки и включите PRAGMA foreign_keys.
SQLite: disk I/O error — причины и решение
Ошибка ввода-вывода: нехватка места, проблемы диска или сетевая ФС. Проверьте место, права и целостность PRAGMA integrity_check.
SQLite: файлы -wal и -shm — что это и можно ли их удалять — причины и решение
В режиме WAL рядом с базой создаются файлы -wal и -shm. Не удаляйте их при работающей БД: часть данных может быть только в WAL.
SQLite: размер файла не уменьшается после удаления данных — VACUUM — причины и решение
SQLite не возвращает место автоматически. Выполните VACUUM (нужно место под копию) или включите auto_vacuum.