Я только начал использовать 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», слова «Ошибка» в выводе команды?