Ma approche pour développer un système multi-locataire, c'est-à-dire une base de données partagée, des schémas séparés idéalement sur PostgreSQL. Une base de données pour tous les locataires, mais un schéma par locataire similaire à django tenant schemas. Y a-t-il un guide ou un addon pour réaliser cela sur websauna ?
Réponse
Trop de publicités?Voici ce qui est et ce qui n'est pas
Déjà là
-
SQLAlchemy prend en charge l'occupation de PostgreSQL. Vous pouvez le définir en remplaçant l'usine de session de base de données lors de la sous-classe de
websauna.system.Initializer
pour votre application. Consultez configure_database qui vous mène au chemin permettant de remplacer create_dbsession. Votre usine de session de base de données examinerait les propriétés de la demande HTTP (domaine) et configurerait la session pour pointer vers le schéma correspondant en conséquence. -
Architecture d'extension qui pourrait fournir une extension plug-and-play
websauna.tenant
-
Thèmes : Le CSS et autres ressources (logo) peuvent être personnalisés en fournissant un modèle
site/base.html
qui est conscient des locataires. Par exemple, il injectecss.html
dans avec la possibilité de définir les noms de fichiers CSS à partir de la base de données. Vous remplaceriez lesite/base.html
par défaut dans l'extensionwebsauna.tenant
.
Manquant
-
La migration Alembic prend en charge les schémas PSQL, mais je ne suis pas sûr à quel point cette prise en charge est complète
-
Il n'y a pas de modèle
Tenant
par exemple pour suivre l'état de facturation de l'abonné