django - Django 上具有子域的多个 PostgreSQL 架构和用户

标签 django postgresql subdomain

我看到了有关多站点和多主机 Django 的各种问题,包括子域和每个子域的特定架构。我还没有看到这个问题的解决方案(或提示,以便我可以编写一个解决方案)。

  1. 我在一个网站上使用 Django + PostgreSQL,比如说 myapp.com
  2. 主网站 myapp.com 用于公司注册
  3. 注册公司拥有自己的子域名company.myapp.com,并从那里登录并工作。

我的想法是在 PostgreSQL 中创建 2 个初始模式。

  1. 公司和用户的架构“auth”
  2. 架构“empty_company_template”,包含公司的基本表,全部为空,但已连接到正确的序列等。

当一家新公司注册时,我希望发生这种情况:

  1. 为公司创建一个源自empty_company_template的新架构
  2. 为公司创建一个新的数据库用户,名为company(公司名称)
  3. 将此新用户的搜索路径设置为公司、身份验证(无权访问empty_company_template,无权访问其他用户架构)

对我来说,这似乎比现有的解决方案更好,现有的解决方案似乎都依赖于单个数据库用户来完成整个应用程序(可以访问所有方案)。然而,我很难让它发挥作用。这确实是一个可行的方法吗?有人能指出我正确的方向吗?它是 Django,所以也许它已经完成了,只是我还没有找到它?

最佳答案

我有一个可行的解决方案,可以完成除单独用户之外的所有操作。

它是一小段中间件(只是 process_request),用于确定子域,并在数据库上执行 SET search_path 查询。目前对我来说已经足够了。

任何对代码感兴趣的人,请与我联系。当它最终确定时,我会在某个地方发布它。

2010 年 12 月 22 日编辑:

我在我的博客上发布了代码 http://blog.dyve.net/django-subdomains-and-postgresql-schemas

关于django - Django 上具有子域的多个 PostgreSQL 架构和用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4105329/

相关文章:

django - “chartit”不是有效的标签库

python - Django:如何创建排行榜

django render_to_string 缺少信息

nginx - 子域、nginx 和 Godaddy

python - Django-ckeditor所有用户的上传权限;添加滚动条; & 根据屏幕尺寸自动调整编辑器宽度

postgresql - Postgres 时间戳到 unix 时间(以毫秒为单位)作为 bigint

python - 有没有办法让 psycopg2 将点作为 python 元组返回?

使用 V8 和 PostgreSQL 的 Javascript 序列化和性能

asp.net - 跨子域的ASP.NET MVC session

firebase - 如何为不同的 Firebase 托管项目设置域及其子域