laravel如何为不同的客户使用不同的数据库?

时间:2018-12-04 17:27:02

标签: php mysql laravel routing scaling

我开发了用于计划和管理学校会议的软件。到目前为止,一切工作正常,但现在出于安全原因,我需要为多个学校提供laravel应用程序,而不必使用同一数据库。

现在,我想根据客户端来自哪个url使用不同的MySQL连接。

例如:

  • school1.example.org使用DB1,
  • school2.example.org使用DB2,依此类推。

我的后端只能与外部数据库服务器一起位于一台服务器上。 所以也许是这样的:

  • API服务器:99.99.99.10
  • DB1服务器:88.88.88.10
  • DB2服务器:88.88.88.20
  • UI服务器:77.77.77.10

我怎么可能意识到这一点?理想情况下,如果新学校要使用它,它将自动缩放,但是如果部署需要手动进行,那么一开始就可以。

我希望你能理解我的需求,并能为我提供帮助。

最诚挚的问候,马文

1 个答案:

答案 0 :(得分:0)

您可以遵循此方法并根据您的要求进行改进。

  1. 主数据库
      

    创建Schools表。在这种情况下,对于每所学校,请保留一个带有子域(唯一标识符)和 School DB 连接信息的记录。

  2. 学校数据库
      

    这将包含您应用程序的所有表。每所学校将有一个单独的数据库。

  3. 仅保留config/database.php中的 Master DB 凭据。
  4. 使用服务提供商,通过使用查询主数据库/学校表,将活动的学校数据库设置为默认数据库连接。子域