Я создал инструмент для некоторых аналитиков, который в качестве первого шага включает в себя .import
загрузку группы CSV-файлов, созданных аналитиками, в базу данных SQLite. Файлы csv соответствуют таблицам, и в схеме есть много ограничений внешнего ключа и других проверок целостности.
Пользователи будут достаточно умными и техническими людьми, но они не обязательно будут знать что-либо о реляционных базах данных, а сообщения об ошибках, которые SQlite выдает по умолчанию, недостаточно ясны сами по себе. В идеале решение проблемы должно быть ясно из сообщения об ошибке ограничения.
Пример:
scheduled_duration.csv:9: INSERT failed: FOREIGN KEY constraint failed
Я хотел бы создать сообщение, больше похожее на:
scheduled_duration.csv:9: Referenced column training_track ('9345') does not exist.
Схема уже знает эту дополнительную информацию о нарушении ограничения. Есть ли простой способ получить такое улучшенное сообщение? Необходимость в конечном итоге вручную реализовать мои собственные проверки целостности данных только для того, чтобы получить более качественные сообщения об ошибках, была бы огромной болью.