我们的网站有两个独立的项目连接到同一个数据库。这是通过将模型从项目 1 导入到项目 2 并使用它来访问和操作数据来实现的。
这在我们的测试服务器上运行良好,但我们正在计划部署,并且我们决定宁愿将项目放在两台单独的计算机上,而将数据库放在第三台计算机上。
我一直在寻找有关如何从另一台计算机上的项目导入模型的想法,但这似乎不可能。 一个明显的解决方案是将模型放在单独的应用程序中并将其放在两个盒子上,但这意味着代码是重复的并且必须应用两次更改。
我正在寻找有关如何处理此问题的建议,并且想知道其他人是否遇到过类似的问题。如果有帮助的话,我们将在 AWS 上部署。谢谢。
这并不是真正的 Django 问题。这更像是一个Python问题。
但是要回答你的问题,Django 必须能够以某种方式导入这些文件。如果它们位于不同的计算机上,您确实应该将代码重构到它自己的应用程序中,然后在每台计算机上安装此应用程序。
我能想到的唯一其他方法是创建自己的导入钩子,可以从网络导入文件,但由于多种原因,这是一个非常糟糕的主意。
我正在做类似的事情,我有两个不同的 Django 项目共享同一个数据库。因此,为了导入模型,我所做的是使用 Django 的管理/实用命令:
python manage.py inspectdb > yourapp/models.py
这将根据您连接到的数据库中的表写入您的“models.py”文件。
然后,一旦您在project2的应用程序中拥有了模型,您就可以像往常一样使用Django ORM与数据库进行交互。
浏览本文档并根据需要进行自定义。