1

Ich versuche, VSTS-Versionsverwaltung für meine Azure SQL-Datenbank einzurichten. Ich verwende die Aufgabe "Deploy Azure SQL DACPAC". Pfad zur dacpac Datei ist Setup alsVSTS: Bereitstellen von Azure SQL DACPAC-Versionsverwaltung mit einem Fehler

$(System.DefaultWorkingDirectory)\**\*.dacpac 

Während das Datenbank-Updates korrekt ich einen Fehler am Ende bekommen, dass die Aufgabe fehlschlägt.

Es sieht so aus, als ob alle Aktualisierungen auf die Datenbank angewendet werden, die Task jedoch immer noch einen Fehler auslöst. Melden Sie sich unter

2016-07-07T07:50:44.6118522Z Publishing to database 'mydb' on server 'myserver.database.windows.net'. 
2016-07-07T07:50:45.7587428Z Initializing deployment (Start) 
2016-07-07T07:50:52.5825349Z Initializing deployment (Complete) 
2016-07-07T07:50:52.5835341Z Analyzing deployment plan (Start) 
2016-07-07T07:50:52.7085342Z Analyzing deployment plan (Complete) 
2016-07-07T07:50:52.7085342Z Updating database (Start) 
2016-07-07T07:50:53.7000358Z Altering [dbo].[usp_Products_List]... 
2016-07-07T07:50:53.7170379Z Creating [dbo].[usp_Products_GetById]... 
2016-07-07T07:50:53.8745919Z An error occurred while the batch was being executed. 
2016-07-07T07:50:53.8855912Z Updating database (Failed) 
2016-07-07T07:50:53.9105905Z ##[debug]System.Management.Automation.RemoteException: *** Could not deploy package. 
2016-07-07T07:50:53.9225921Z ##[debug][Azure RDFE Call] Deleting firewall rule 260745ad-327c-45ae-bcb8-5c6bb0e43797 on azure database server: myserver 
2016-07-07T07:50:55.9753040Z ##[debug][Azure RDFE Call] Firewall rule 260745ad-327c-45ae-bcb8-5c6bb0e43797 deleted on azure database server: myserver 
2016-07-07T07:50:55.9934761Z ##[error]System.Management.Automation.ParentContainsErrorRecordException: *** Could not deploy package. 

Stored Procedure-Code

CREATE PROCEDURE [dbo].[usp_Products_GetById] 
    @pId int 
AS 
    SET NOCOUNT ON; 

SELECT [id] 
     ,[description] 
     ,[created_dt] 
     ,[last_mod_dt] 
     ,[active] 
    FROM [dbo].[Products] 
    WHERE [id] = @pId 
GO 

Antwort

0

In meinem speziellen Fall ist dieser Fehler passiert, weil ich in meinem Datenbankprojekt in einem der Init-Skripts für eine Tabelle versucht habe, die Identitätsspezifikation für eine nicht numerische Spalte festzulegen.

Überprüfen Sie also, ob alle Ihre Skripte ohne Fehler ausgeführt werden (mit SQL Management Studio oder Visual Studio), wenn die anderen Lösungen nicht funktionieren.

Schade, dass der Fehler in VSTS nicht die SQL-Fehler nicht erfassen ...

+0

hinzugefügt. Dies wurde zur akzeptierten Antwort geändert. Wie ich in meiner Antwort sagte, benutzte ich zuerst den FQDN. Aber der Skriptfehler hat wahrscheinlich im ersten Fall die Fehler ausgelöst. – BeesNees

1

Dies wird in der Regel durch die "Zielplattform" des SQL-Projekt verursacht wird, die SQL Server-Version nicht entsprechen Ihrer bereitstellen. Überprüfen Sie, ob die "Zielplattform" Ihres SQL-Projekts der Azure SQL-Datenbankversion entspricht:

+0

Die Version wird korrekt in beide SQL-Projekt und Azure SQL gesetzt. – BeesNees

+0

@BipinDas Können Sie in Ihrer Release-Definition eine Variable namens "system.debug" hinzufügen und den Wert auf "true" setzen und dann die Freigabe starten und die Protokolle freigeben? –

+0

Fehlerprotokoll zur Frage hinzugefügt. – BeesNees

0

Ich habe versucht, die Firewallregel manuell festzulegen und nur den Servernamen anstelle des FQDN zu verwenden. Dann habe ich den FQDN nochmal ausprobiert und es hat geklappt. Also nicht sicher, warum es scheiterte.