Как выполнить тестирование схемы базы данных в разных приложениях, использующих одну и ту же схему - PullRequest
1 голос
/ 30 апреля 2020

У меня есть ситуация, когда у меня есть два микросервиса SpringBoot, которые используют одну и ту же схему базы данных. Схема поддерживается файлом журнала изменений в liquibase. Один сервис читает из базы данных, а другой отвечает за запись в базу данных.

Право Сервису записи принадлежит файл журнала изменений в liquibase, что означает, что Сервису записи принадлежит схема. И способ, которым я проверяю службу чтения, - это сначала развернуть службу записи в тестовой среде, а затем службу чтения, а затем выполнить сквозные тесты для службы чтения.

Есть ли способ для обе службы (два отдельных приложения, два отдельных репозитория) для совместного использования файла журнала изменений в liquibase? Я чувствую, что это похоже на тестовый контракт, поскольку файл журнала изменений будет контрактом для обеих служб, но я не был уверен, было ли что-то, предоставленное Liquibase, Spring, Pact и др. c, которое поддержало эту идею.

Спасибо за ваше время!

1 Ответ

1 голос
/ 01 мая 2020

Я думаю, что это не будет считаться git ответом, но на ум приходят два решения:

  1. , так как ваш второй сервис читает из базы данных, я полагаю, у вас есть полный набор сущностей там, и сущности должны соответствовать вашей схеме базы данных. И поскольку вы используете Spring, я полагаю, вы можете добавить spring.jpa.hibernate.ddl-auto=validate в файл application.properties. Это проверит вашу схему базы данных по сущностям.

  2. Вы можете создать отдельную библиотеку, которая будет содержать все changeLogs. После этого вы можете включить эту библиотеку в обе службы, чтобы liquibase проверила, что все changeSet выполняются во время развертывания приложения. Но вы должны убедиться, что все ваши наборы изменений имеют предварительные условия, чтобы ваше развертывание не завершилось ошибкой и не было дубликатов в схеме БД.

...