У меня есть проект Firebase, который в основном имеет две среды: Staging и Production . Я организовал их, создав различные проекты Firebase. Каждый из моих проектов использует Облачные функции Firebase и Firestore . За исключением этого, у меня есть каждый из проектов, связанных с определенной веткой GIT. Обе ветви интегрированы в конвейер CI / CD в Google Cloud Build .
Итак, чтобы прояснить ситуацию, я поделюсь простой диаграммой:
Как вы можете видеть, у меня есть исходный код для облачных функций под контролем исходного кода, и там не о чем беспокоиться. Проблема возникает, когда у меня возникает следующая ситуация:
- Изменение схемы Firestore присутствует на Staging
- Облачная функция (на Staging ) настроен на новую схему.
- Объединение подготовка ответвление в производство .
- Из-за старой схемы Firestore на production новые функции не будут работать должным образом.
Чтобы обойти ее, мне нужновручную перейти к экземпляру production Firestore и откорректировать там схему (есть риск испортить производственные данные).
В идеальном случае, эта операция была бы автоматизирована и существующий проектданные будут адаптированы к новой схеме, которая будет динамически вводиться после слияния.
Возможно ли это как-нибудь? Что-то вроде миграций в .NET Core .