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

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

Теперь я хочу использовать разные MySQL-соединения в зависимости от того, с какого URL приходит клиент.

Например:

  • school1.example.org использует DB1,
  • school2.example.org использует DB2 и так далее.

Мой бэкэнд должен быть только на одном сервере с внешними серверами баз данных.
Так что может быть что-то вроде этого:

  • API-сервер: 99.99.99.10
  • Сервер DB1: 88.88.88.10
  • Сервер DB2: 88.88.88.20
  • UI Server: 77.77.77.10

Как я мог понять это? В идеале это будет автоматически масштабироваться, если новые школы захотят использовать это, но если для развертывания необходима ручная работа, это будет хорошо с самого начала.

Я надеюсь, что вы понимаете, что мне нужно, и можете помочь мне с этим.

С наилучшими пожеланиями, Марвин

0

Решение

Вы можете следовать этому подходу и совершенствоваться в соответствии с вашими требованиями.

  1. Мастер БД

    Создайте Schools Таблица. При этом для каждой школы ведите учет с субдомена (уникальный идентификатор) и Школа БД информация о соединении.

  2. Школьные БД

    Это будет содержать все таблицы для вашего приложения. У каждой школы будет отдельная БД.

  3. Хранить только Мастер БД учетные данные в config/database.php,
  4. Используя Поставщик услуг установить активный Школа БД в качестве подключения к базе данных по умолчанию, запрашивая Мастер БД / Таблица школ с использованием подобласть.
0

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

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

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