как отловить ошибку SQL при миграции в AdonisJS - PullRequest
0 голосов
/ 10 февраля 2019

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

...