Как отловить ошибку 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" в выводе команды?

0 ответов

Другие вопросы по тегам