Почему Хасура ошибается при запуске из-за того, что следующие корневые поля дублируются в beta8?

Это вопрос для приложения Hasura, работающего с базой данных Postgres. При запуске beta6 все работает. Однако после обновления до beta8 Хасура не запускается.

Вот последнее сообщение журнала при запуске с beta6:

{
    "timestamp": "2019-10-23T19:07:55.521+0000",
    "level": "info",
    "type": "startup",
    "detail": {
        "kind": "server",
        "info": {
            "time_taken": 0.486567746,
            "message": "starting API server"
        }
    }
}

И вот последнее сообщение журнала, начиная с beta8:

{
    "path": "$.args[0].args",
    "error": "following root fields are duplicated: ******",
    "code": "unexpected"
}

Пока мы продолжаем бета6, и если у кого-то есть открытый канал связи с Хасурой, было бы неплохо сообщить им, что они внесли критические изменения в свой последний выпуск. Было бы хорошо снова встать на путь обновления, надеюсь, мы не застряли на бета6 по какой-либо причине.


person Tim Fulmer    schedule 23.10.2019    source источник
comment
Привет! Кто-то был достаточно любезен, чтобы отправить ваш вопрос о переполнении стека в нашу систему отслеживания проблем , и действительно, это обновление не должно было ломать! Если бы вы могли поделиться с нами некоторыми подробностями о своей схеме (в идеале - на GitHub), мы поможем диагностировать, в чем проблема.   -  person Alexis King    schedule 24.10.2019
comment
Безусловно, спасибо @AlexisKing! Я оставляю отзыв и рад сделать все, что в моих силах, чтобы помочь.   -  person Tim Fulmer    schedule 24.10.2019


Ответы (1)


Короче говоря, это произошло из-за соглашения об именах, которое использует Hasura, чтобы добавить _aggregate к имени таблицы при определении преобразователей для операторов выбора для таблицы. Мы также используем _aggregate для нашего собственного соглашения об именах таблиц, которое используется, когда одна таблица сводит или агрегирует значения в другой таблице.

Это вызвало конфликт именования корней в составном графе.

Хасура смогла предоставить ручной обходной путь, задокументированный в проблеме GitHub:

https://github.com/hasura/graphql-engine/issues/3220

person Tim Fulmer    schedule 05.11.2019