我有一个django项目,希望将其划分为具有相同结构的多个数据库。
使用url区分不同的数据库。当管理管理页面登录时,根据不同的urls登录到不同的数据库。
例如: 127.0.0.1/admin使用管理数据库,127.0.0.1/ admin 2使用admin2数据库。
django实现这个功能了吗?我需要做什么,你能给我一些建议或想法吗?非常感谢
发布于 2021-08-17 07:33:00
TL;DR就单个django项目而言,没有实现多个数据库的默认方法。
场景1
从您非常有限的解释中,我将假设您希望将一个管理仪表板的数据从第二个管理仪表板的数据中分离出来,以实现与权限和其他模型有关的数据隔离,这称为多租户。
非常简单:在多租户体系结构中,可以有多个租户,其结构由models.py定义,并且可以通过主超级管理来控制所有租户,这些租户可以拥有自己的管理仪表板,其中存储在其中的数据仅限于租户用户。更简单地说,您可以使用这种方法创建一个SaaS应用程序,您可以拥有多个组织,而这些组织有自己的用户,并具有特定的权限/组。
在django中,可以通过使用POSTGRESql和这个很棒的包的模式分离数据库来实现多租户,这两个数据库已经为您完成了大部分的繁重工作。您可以通过url或子域实现分离登录。如果您的租户拥有多个组织的一部分的用户,并且您希望所有用户都有一个登录名,那么您可以使用与django租户一起使用的这个包裹。它为每个租户提供了一个具有独立权限模块的公共用户表。
场景2
从您非常有限的解释中,我将假设您仍然希望为您的应用程序分离数据库,在这种情况下,您需要重新考虑解决问题的方法,因为在部署之后,这不是您想要的东西,因为django没有提供直接的方法。相反,您应该研究微服务体系结构。
https://stackoverflow.com/questions/68811575
复制相似问题