我有一个多租户Django应用程序在Heroku上使用Postgres。有没有办法根据我的应用程序上创建新用户的时间来实际实例化新的dyno / db / subdomain?
答案 0 :(得分:0)
这在很大程度上取决于您的多租户是如何实现的。
如果您尚未在应用程序中构建多租户,我建议您查看类似django-tenants
的内容,它会添加基于子域和PostgreSQL架构的多租户支持。如果这不合适,你可以探索other similar libraries。
一旦你设置了django-tenants
,Django方面就没有更多的事情可做了。一切都来配置。对已配置子域的请求将路由到相应的共享或租户数据库架构。
但是这些请求必须通过您的应用程序。这就是DNS进入的地方,理想情况下使用通配符子域。
首先,Heroku方面的add *.your-domain.tld
to your app's domains:
heroku domains:add *.your-domain.tld
接下来,使用DNS提供商¹添加通配符CNAME条目。如何执行此操作的确切机制因提供商而异。您已经说过要转移到DNSimple,而looks like they support wildcard CNAME records using *
。
¹不幸的是,some DNS providers like GoDaddy don't support wildcard CNAME entries。在这种情况下,您必须单独创建每个CNAME记录。