基于用户创建在 Heroku 上自动部署应用程序

Automatically Deploy App on Heroku Based on User Creation

我有一个在 Heroku 上使用 Postgres 的多租户 Django 应用程序。有没有一种方法可以根据在我的应用程序上创建新用户的时间实际实例化一个新的 dyno/db/subdomain?

这在很大程度上取决于您的多租户是如何实现的。

如果您还没有在您的应用程序中构建多租户,我鼓励您查看类似 django-tenants, which adds multitenancy support based on subdomains and PostgreSQL schemas. If that's not a good fit you can explore other similar libraries.

的内容

设置好 django-tenants 后,在 Django 方面就没什么可做的了。这一切都是配置。对已配置子域的请求将被路由到适当的共享或租户数据库架构。

但是这些请求必须提交给您的应用程序。这就是 DNS 的用武之地,最好使用通配符子域。

首先,add *.your-domain.tld to your app's domains在Heroku这边:

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 记录。