如何在两个模块之间共享数据库模型?

How to share Database models between two modules?

背景

我目前正在 python 中的一个 Web 项目上工作,该项目托管在 AWS Elasticbeanstalk 上。我们有两个可部署的 Web 应用程序。前端烧瓶应用程序和后端烧瓶应用程序。从结构上讲,两者在同一个 git 存储库中,但对于部署,每个都 git 单独存档以生成可以发布到服务器的 .zip。

--project/
   --front/
   --back/

解决方案的两个模块都需要与数据库通信。为此,我选择使用 ORM sqlalchemy。这个 ORM 允许我创建模型 (python 类) 来表示我数据库中的表。

问题

我的问题是这样的。我需要能够在两个模块中使用这些模型。目前我在每个子文件夹中都有保存模型的文件副本。这可能会导致在保持文件同步方面出现很多问题,而且还会在我的存储库中添加大量重复代码。我希望比我有更多经验的人能够描述一个更好的解决方案。

您可以添加一个 common 文件夹,其中包含您的所有模型(以及共享库),如下所示:

--project/
   --front/
   --common/
   --back/

然后您部署两个文件夹 front/common/ 例如。

这样做,您可以将两个文件夹压缩到一个 Zip 文件中,也可以使用两个 Zip 文件。