Ошибка «Datafire is not a LiteDB database»: причины и решение
Разработчики на C# часто сталкиваются с ситуацией, когда после записи данных в LiteDB базу через программу, сторонние утилиты отказываются её открывать. Типичная ошибка - Failed to open database: Datafire is not a LiteDB database. В этой статье разберём причины несовместимости, способы диагностики и правильные инструменты для просмотра БД.
Почему возникает ошибка «Datafire is not a LiteDB database»?
Основная причина - несовместимость версий LiteDB. База данных, созданная с помощью LiteDB 5.x, имеет внутренний формат, который не поддерживается старыми версиями визуальных обозревателей (например, LiteDB Explorer или LiteDB Viewer v4.1.0). Программа пишет данные корректно, но инструмент просмотра не распознаёт заголовок файла и выдаёт сообщение об ошибке.
Как проверить, что база не повреждена?
Если ваше приложение успешно читает коллекции и выводит данные через Console.WriteLine(data.ToString()), значит БД работоспособна. Проблема исключительно в инструменте, который вы пытаетесь использовать для просмотра. Рекомендуется проверить файл через LiteDB Studio - он поддерживает все актуальные версии формата.
Какие инструменты совместимы с LiteDB 5.x?
Для LiteDB 5.0.21 подходят следующие утилиты:
- LiteDB Studio - официальный кроссплатформенный менеджер, поддерживающий версии 4 и 5.
- DB Browser for LiteDB - лёгкая программа с поддержкой последних форматов.
- LiteDB Explorer (только последние сборки, обновлённые под v5).
Старые версии (LiteDB Viewer 4.1.0 и ранее) не смогут открыть базу - используйте только актуальные релизы.
Как исправить ошибку при открытии в LiteDB Explorer?
Если вы хотите продолжать пользоваться LiteDB Explorer, выполните следующие шаги:
- Обновите утилиту до последней версии, совместимой с LiteDB 5.x.
- Проверьте целостность файла - откройте его через ваше приложение и выполните запрос к коллекции.
- Используйте альтернативный инструмент - например, LiteDB Studio, который точно откроет вашу БД.
Дополнительные рекомендации
При разработке на C# с LiteDB 5.0.21 всегда указывайте точную версию в файле проекта. Если вы переносите базу между разными версиями LiteDB, используйте встроенную миграцию или экспорт в JSON. Помните, что заголовок файла содержит сигнатуру «Datafire» только в новых форматах - это нормально, а не признак повреждения.