如何在两个模块之间共享数据库模型?
Posted
技术标签:
【中文标题】如何在两个模块之间共享数据库模型?【英文标题】:How to share Database models between two modules? 【发布时间】:2017-09-06 13:13:55 【问题描述】:背景
我目前正在开发一个托管在 AWS Elasticbeanstalk 上的 Python 网络项目。我们有两个可部署的 Web 应用程序。前端烧瓶应用程序和后端烧瓶应用程序。在结构上,这两者在同一个 git 存储库中,但对于部署,每个都是 git 单独存档以生成可以发布到服务器的 .zip。
--project/
--front/
--back/
解决方案的两个模块都需要与数据库通信。为此,我选择使用 ORM sqlalchemy。这个 ORM 允许我创建代表数据库中表的模型(python 类)。
问题
我的问题是这样的。我需要能够在两个模块中使用模型。目前,我有在每个子文件夹中保存模型的文件的副本。这可能会导致在保持文件同步方面出现很多问题,而且还会在我的存储库中添加大量重复代码。我希望比我自己更有经验的人能够描述一个更好的解决方案。
【问题讨论】:
【参考方案1】:您可以添加一个common
文件夹,其中包含所有模型(以及共享库),如下所示:
--project/
--front/
--common/
--back/
然后部署两个文件夹 front/
和 common/
例如。
通过这样做,您可以将两个文件夹压缩到一个 Zip 文件中,或者使用两个 Zip 文件。
【讨论】:
这似乎是我找到的最好的解决方案,使我的构建/部署过程更长,但值得减少代码重复。 在这种情况下,如何以理智的方式从 common 导入文件?它不是 front 或 back 的子目录,python 通常需要像这样的导入的解决方法,不是吗?以上是关于如何在两个模块之间共享数据库模型?的主要内容,如果未能解决你的问题,请参考以下文章
你如何在 UIKit 视图控制器和它呈现的 SwiftUI 视图之间共享数据模型?