1

J'essaye de configurer la gestion de version de VSTS pour ma base de données Azure SQL. J'utilise la tâche "Deploy Azure SQL DACPAC". Chemin d'accès au fichier dacpac est configuré commeVSTS: Déployer Azure SQL DACPAC Release Management en lançant une erreur

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

Alors que les mises à jour de base de données correctement je reçois une erreur à la fin qui provoque la tâche à l'échec. Il semble que toutes les mises à jour soient appliquées à la base de données, mais la tâche continue de générer une erreur. Connectez-vous ci-dessous

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. 

procédure stockée 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 

Répondre

0

Dans mon cas particulier, cette erreur est survenue parce que dans mon projet de base de données, dans l'un des scripts d'initialisation d'une table, j'essayais de définir la spécification d'identité pour une colonne non numérique. Donc, vérifiez que tous vos scripts s'exécutent sans erreur (en utilisant SQL Management Studio ou Visual Studio) si les autres solutions ne fonctionnent pas.

Dommage que l'erreur dans VSTS ne saisit pas l'erreur SQL ...

+0

Changé ceci à la réponse acceptée. Comme je l'ai dit dans ma réponse, j'utilisais le FQDN en premier. Mais l'erreur de script était probablement ce qui a déclenché les erreurs dans le premier cas. – BeesNees

1

Cela est généralement causé par la « plate-forme cible » de votre projet SQL ne correspond pas à la version SQL Server vous êtes déployaient. Veuillez vérifier si la «Plate-forme cible» de votre projet SQL correspond à la version de base de données SQL Azure: enter image description here

+0

La version est correctement définie dans les deux projets SQL et SQL Azure. – BeesNees

+0

@BipinDas Pouvez-vous ajouter une variable nommée "system.debug" dans votre définition de version et définir la valeur sur "true", puis démarrer la version et partager les journaux? –

+0

Ajout du journal des erreurs à la question. – BeesNees

0

J'ai essayé de définir manuellement la règle de pare-feu et d'utiliser uniquement le nom du serveur plutôt que le nom de domaine complet. Puis j'ai essayé le FQDN encore et cela a fonctionné. Donc je ne sais pas pourquoi ça a échoué.