Как отловить ошибку SQL при миграции в AdonisJS
Я только начал использовать adonisJS, и некоторое время искал этот вопрос, но безуспешно находил ответы. Мне интересно, могу ли я получить какую-либо помощь здесь.
Команда adonis migrate:refresh
всегда возвращает код 0 независимо от того, встречается он с ошибкой SQL или нет. Интересно, есть ли способ отловить эту ошибку, кроме проверки, есть ли в выводе слово "Ошибка"?
Вот некоторая справочная информация: у меня есть скрипт для запуска базы данных migrate:refresh
а также seeding
вместе на моем сервере автоматически. Но иногда, если кто-то вручную изменил схему моей базы данных (например, удалил таблицу), migration:refresh
возникнет ошибка SQL и произойдет откат всех операций. Но так как я не смог обнаружить это (миграция: обновление завершено с кодом 0), часть заполнения моего скрипта все равно будет работать, что приведет к дублированию заполнения в моей базе данных.
У меня есть пример сценария bash для обнаружения ошибки SQL, но я не думаю, что это хорошее решение. Я хочу знать, есть ли хороший способ обнаружить ошибку SQL во время миграции?
Вот мой пример сценария
#/usr/bin/env bash
adonis migration:refresh | grep 'Error'
if [ $? -eq 1 ]
then
echo "Success, can start seeding"
else
echo "Failed, do not run seeding"
fi
Я также настроил репозиторий для воспроизведения ошибки SQL миграции, изменив один из файлов миграции в образце примера. Чтобы использовать его, просто клонируйте его, переименуйте файл ".env.example" в ".env" и выполните следующие действия:
npm install
adonis migration:run
adonis migration:refresh
TL; DR: Любой хороший способ обнаружить ошибку SQL при использовании команды adonis migration:refresh
в сценарии, отличном от "grep", слово "Error" в выводе команды?