Каков наилучший способ управления версиями схемы и метаданных базы данных в Hasura Cloud?
Мы столкнулись с проблемой, когда у нас есть резервная копия базы данных, но миграции вышли из строя, и в результате в нашем внешнем коде есть много запросов GraphQL, которые вообще не соответствуют отношениям с базой данных.
Я новичок в этом проекте, но похоже, что люди просто вносили изменения в консоль Hasura, а не через CLI и совершали миграции.
Я просматриваю и воссоздаю отношения вручную, чтобы они соответствовали запросам GraphQL во внешнем интерфейсе, но в дальнейшем я хотел бы убедиться, что это больше не повторится.
Мы также предпочли бы перенести все из нашего образа Docker на Heroku в облако Hasura, если это возможно.
Мой вопрос:
Существует ли стандартизированный шаблон для обеспечения контроля версий данных базы данных, схемы базы данных и метаданных Hasura [предпочтительно Hasura Cloud]?
Более того, есть ли способ применить этот шаблон, чтобы другие разработчики не могли просто настроить что-то в консоли Hasura, и все снова рассинхронизировалось.
Заранее большое спасибо, если сможете помочь. ♂️
1 ответ
https://hasura.io/blog/moving-from-local-development-staging-production-with-hasura/ — хорошее место для начала.
Я настоятельно рекомендую следовать этому. Локальный запуск Hasura через Docker очень прост в настройке иhasura console
предоставит вам доступ к консоли локального хоста, которая синхронизирует ваши изменения с файлами метаданных/миграции в вашем локальном репо. Оттуда просто зафиксируйте, просмотрите, объедините и воспользуйтесь преимуществами развертывания Hasura Cloud на GitHub, если сможете. Если не,hasura deploy
и несколько переменных среды — это действительно все, что вам нужно для развертывания изменений.
Что касается запрета разработчикам настраивать что-то в консоли, если вы говорите о какой-то развернутой общей среде, то, честно говоря, я думаю, что доступ к консоли должен быть ограничен.