我開發的應用程序部署到惡劣環境(開發,測試,分期,生產)。實體框架根據部署環境設置數據庫模式
在開發過程中,我從現有的開發數據庫創建實體模型。一切工作正常,但因爲我想將應用程序放到測試環境中,所以我意識到以下問題:
數據庫的結構在所有環境中都是相同的,但數據庫模式從環境變爲環境。例如,每個數據庫中都有一個Customers
表。在我的本地開發機器上,它具有模式dbo([dbo].[Customers]
),但在測試環境中,模式是測試([test].[Customers]
),而架構在暫存環境([stag].[Customers]
)等中仍然存在。
因此,當我在測試環境中部署應用程序時,它不會從數據庫獲取數據,因爲實體框架期望在[dbo].[Customers]
中找到數據,但沒有這樣的表,只有[test].[Customers]
。
我知道,我可以定義一個schema other than dbo,但這並不能幫助我,因爲根據部署環境的不同,我需要不同的模式。
有什麼建議嗎? 不知怎的,我想我會結束,要求我的數據庫管理員在每個環境中的每個數據庫中將架構更改爲dbo ...
無論如何,後一種選擇是最好的,因爲有一天,您可能想將模式用於其他目的,例如,分離數據模型的邏輯部分。在查詢中使用時,UDF必須以其模式名稱作爲前綴。編寫使用UDF的存儲過程時非常麻煩。 –