Как обрабатывать миграции в двух отдельных проектах laravel, которые используют одну и ту же базу данных?

Наша установка такова:

  1. У нас есть и API, который кормит iOS и приложение для Android
  2. У нас есть Admin API, который кормит веб-приложение Admin

Я занимаюсь разработкой Admin, мой коллега разрабатывает API приложения.

Они оба используют одну и ту же базу данных и большинство одинаковых таблиц. Объединение их в один проект не вариант, так как мы будем развертывать его в Elastic Beanstalk, и администратору не нужно масштабировать, так как он будет использоваться небольшим количеством людей.

Проблема, с которой мы столкнулись, связана с миграцией, и мы пришли к следующим выводам:

  • У нас обоих не может быть собственных миграций в наших проектах, так как версии не будут складываться
  • Если мы сохраняем миграции только для одного из проектов (у нас обоих есть доступ к обоим проектам), проект без миграций не может быть повторно развернут без повторного развертывания другого.
  • Если мы создаем третий проект, который имеет только миграции, мы размещаем приложение, которое по сути ничего не делает

Хотя я могу думать о Hacky способы решения этой проблемы, мы ищем лучший подход.

2

Решение

Я бы порекомендовал вариант создания третьего проекта, который имеет только миграции. Таким образом, вы сохраняете все миграции в одном месте и избегаете проблем несогласованности, а также отделяете миграции от развертывания любого приложения. Тот факт, что приложение ничего не «делает», не должно иметь значения; вам не нужно развертывать дополнительное приложение, просто запустите миграцию с сервера развертывания. На самом деле вам не нужно создавать целый проект Laravel только для ваших миграций; довольно просто использовать Eloquent за пределами Laravel. Эта статья приводит пример использования построителя запросов Eloquent для запуска миграций за пределы Laravel. Вы также можете использовать легкий инструмент миграции, как Phinx, который предлагает аналогичный набор функций для встроенных миграций Laravel, но с минимальными зависимостями.

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]