Программирование и базы данных

SQLite

11 статей с причинами, проверками и пошаговыми решениями. Например: database is locked; unable to open database file.

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