我在多站点和多主机Django上看到了各种问题,包括子域和每个子域的特定架构。我没有看到的是一个解决方案(或提示,所以我可以编写一个)来解决这个问题。
我这样做的想法是在PostgreSQL中制作2个初始模式。
当一家新公司注册时,我希望这种情况发生:
对我来说,这似乎比现有解决方案更好,所有解决方案似乎都依赖于整个应用程序的单个数据库用户(可以访问所有方案)。但是,我很难让它发挥作用。这确实是一种可行的方法吗?谁能指出我正确的方向?这是Django,所以也许已经完成了,我还没有找到它?
答案 0 :(得分:3)
我有一个可以解决除了单独用户之外的所有工作的解决方案。
这是确定子域的一小块中间件(只是process_request),并在数据库上执行SET search_path查询。这对我来说已经足够了。
对代码感兴趣的人,请联系我。我会在最后的时候将它发布到某个地方。
EDIT 2010年12月22日:
我在我的博客上发布了代码 http://blog.dyve.net/django-subdomains-and-postgresql-schemas
答案 1 :(得分:0)
如果您想拥有单独的数据库用户,您可能需要单独的Django实例,否则将无法获得安全性。该模型将需要更复杂的过程管理。我不认为你会找到这样一个应用程序的现成解决方案,所以你很可能不得不自己动手。否则,如果您不愿意投入大量时间,请坚持使用一个用户来完成整个应用程序。