我正在使用 FastAPI 和 SQLAlchemy 作为 ORM 开发多租户应用程序。我需要为多租户实现一个干净且可扩展的解决方案,而不依赖于域标头(例如,tenant1.example.com)。
我目前陷入了架构困境,并正在寻找干净地实现这一点的指导。任何建议、模式或示例将不胜感激。
您可以为每个模型使用租户属性。然后您将能够按特定的列名称分类存储数据。
class TenantBase(Base):
__abstract__ = True # Ensures this base class is not mapped to a table
tenant_name = Column(String, nullable=False, index=True) # Tenant
identifier
class User(TenantBase):
__tablename__ = 'users'
id = Column(Integer, primary_key=True, autoincrement=True)
username = Column(String, nullable=False)
email = Column(String, nullable=False)
还有=>https://medium.com/@vivekmadurai/multi-tenancy-in-rest-api-a570d728620c