我正在嘗試使用 Azure 發布管道將資料庫更改部署到 Windows 服務器。我正在使用包含表資料的 DACPAC 檔案。
這是生成我在構建管道中運行的 DACPAC 的代碼:
sqlpackage `
/Action:Extract `
/SourceConnectionString:"Data Source=localhost;Initial Catalog=Shipping;Integrated Security=False;Persist Security Info=True;User ID=username;Password=password" `
/TargetFile:"$PublishDir/Shipping.dacpac" `
/p:IgnoreUserLoginMappings=True `
/p:VerifyExtraction=False `
/p:ExtractAllTableData=True
在發布管道中,我有一個部署組作業,其中包含以下步驟:
- 禁用觸發器
- 禁用約束
- 部署 DACPAC
- 啟用觸發器
- 啟用約束
我將 SQL Server 部署任務用于部署 DACPAC 步驟。每次到達該步驟時都會引發此錯誤:
*** Could not deploy package.
Error SQL72014: Framework Microsoft SqlClient Data Provider: Msg 208, Level 16, State 1, Procedure vGetTransportPackages, Line 31 Invalid object name 'FreightDataStore.TP.TransportPackage'.
Error SQL72045: Script execution error. The executed script:
CREATE VIEW [fds].[vGetTransportPackages] AS WITH PACKAGES AS (SELECT DISTINCT tp.transportPackageID AS TransportPackageID, tp.tpID AS CarTransportPackageNumber, tp.airWayBillNo AS AirwayBillNumber, tp.pod AS DestinationPort,
(SELECT TOP 1 tl.LocationName FROM fds.TransportLocation AS tl WHERE tl.UnLocCode = tp.pod) AS DestinationPortName, pod.countryCode AS DestinatonPortCountry, (SELECT TOP 1 c.CountryName FROM ref.Countries AS c WHERE c.CountryCode = pod.countryCode) AS DestinationPortCountryName, tp.poe AS OriginPort, (SELECT TOP 1 tl.LocationName FROM fds.TransportLocation AS tl WHERE tl.UnLocCode = tp.poe
我對資料庫部署比較陌生。我是否需要更改生成 DACPAC 的方式?
uj5u.com熱心網友回復:
我弄清楚了這個問題。我沒有在我的 Shipping 資料庫所依賴的服務器上安裝其他資料庫。一旦我安裝了 FreightDataStore 和其他一些資料庫,我就能夠成功地部署 DACPAC。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/495821.html
