我开发的应用程序部署到严苛的环境(开发、测试、登台、生产)。
在开发过程中,我从现有的开发数据库创建了实体模型。一切正常,但是当我想将应用程序放到测试环境中时,我意识到以下问题:
数据库的结构在所有环境中都是相同的,但数据库架构会因环境而异。例如Customers
,每个数据库中都有一个表。在我的本地开发机器上,它具有架构 dbo ( [dbo].[Customers]
),但在测试环境中,架构是 test ( [test].[Customers]
),而架构在登台环境 ( [stag].[Customers]
) 中是 stag,依此类推。
因此,当我在测试环境中部署应用程序时,它没有从数据库中获取数据,因为实体框架希望在其中找到数据[dbo].[Customers]
但没有这样的表,只有一个[test].[Customers]
.
我知道,我可以定义dbo 以外的模式,但这对我没有帮助,因为我需要一个不同的模式,具体取决于部署环境。
有什么建议么?不知何故,我想我会结束,要求我的数据库管理员在每个环境中的每个数据库中将架构更改为 dbo ......