J'essaie d'interroger la database de bambou pour get l'information suivante. Je veux find l' information de triggersment , qui est quel environnement est déclenché par quelle twig sur quel plan de construction. Le problème est que certains environnements peuvent être déclenchés par d'autres environnements .
Jusqu'à présent, j'ai consulté la database Bamboo et il me semble avoir la plupart, sinon toutes les informations dont j'ai besoin. Ce que j'ai fait est qu'il y a une table dans la database Bamboo appelée dbo.Deployment_Environment qui a les champs, EnvironmentID et Triggers_XML_Data qui est exactement ce dont j'ai besoin. Ensuite, il y a une autre table appelée le dbo. Deployment_Result qui a le EnvironmentID , Deployment_State et le Trigger_Reason .
De ces deux tables ce que je pense que je dois faire est ceci. select toutes ces colonnes mais si le sortinggger_reason contient l' environnement et aussi si le sortingggers_xml_data contient l' environnement , alors récupérez cet environnement à partir de the sortingggers_xml_Data (ceci est sous le noeud xml / item / value ). Une fois que vous avez obtenu cet ID, select toutes les mêmes colonnes et répétez le process si l'environnement est la raison du deployment à nouveau jusqu'à ce que ce ne soit pas le cas. Le type de données sortingggers_xml_data est ntext et le sortinggger_reason est nvarchar .
Je ne sais pas exactement comment je peux le faire en SQL c'est ce que j'essaie jusqu'ici mais je ne peux pas get la bonne information:
alter proc dbo.myStoredProc3 as Declare @EnvironmentID int select @EnvironmentID as ENVIRONMENT_ID, de.ENVIRONMENT_ID, dr.DEPLOYMENT_STATE, de.TRIGGERS_XML_DATA, dr.TRIGGER_REASON, de.NAME from dbo.BUILDRESULTSUMMARY as br, dbo.DEPLOYMENT_ENVIRONMENT as de, dbo.DEPLOYMENT_RESULT as dr where dr.TRIGGER_REASON like '%environment%' ( select de2.ENVIRONMENT_ID as 'test' from dbo.DEPLOYMENT_ENVIRONMENT as de2 )
Je sais que cela n'obtiendra pas la bonne information mais chaque fois que j'essayais de faire des requêtes ou des instructions dans le SQL cela créerait aussi une erreur: Comment faire cette requête correctement? Je pense que j'ai toutes les informations dont j'ai besoin mais sinon je peux en append d'autres.
J'ai aussi essayé de faire ce qui suit:
While (@Counter <= 5) Begin Select de.NAME As 'Deployment Name', dr.TRIGGER_REASON as 'Trigger Reason', dr.DEPLOYMENT_STATE as 'Status' from dbo.DEPLOYMENT_ENVIRONMENT as de, dbo.DEPLOYMENT_RESULT as dr Where de.TRIGGERS_XML_DATA like '%environment%' and dr.TRIGGER_REASON like '%environment%' SET @Counter = @Counter + 1 END
Mais cela ne va pas lier les colonnes que je reçois. Si le Trigger_Reason concerne l' environnement, alors dans le ntext il aura un noeud qui a l' environmentID , je veux l'get et le définir comme une variable , que je peux utiliser pour get d'autres colonnes qui se lient set, par exemple Select name from dbo.Environment where @NewEnvironmentID = de.EnvironmentID.
modifier
En utilisant la requête SQL suivante:
alter proc getEnvironmentTriggers @EnvironmentID int as Select a.NAME, a.TRIGGERS_XML_DATA, a.TRIGGER_REASON, a.ENVIRONMENT_ID From (Select de.NAME, de.TRIGGERS_XML_DATA, de.ENVIRONMENT_ID, dr.TRIGGER_REASON From dbo.DEPLOYMENT_ENVIRONMENT as de Inner join dbo.DEPLOYMENT_RESULT as dr on dr.ENVIRONMENT_ID = de.ENVIRONMENT_ID Where @EnvironmentID = de.ENVIRONMENT_ID and de.TRIGGERS_XML_DATA like '%Environment%' and dr.TRIGGER_REASON like '%Environment%' ) a
Je me rapproche de ce dont j'ai besoin. Pour ce faire et l'exécution de la procédure stockée comme ceci: exec dbo.getEnvironmentTriggers 15892483
, cela returnnera dans la requête à l'intérieur du ntext l de la TRIGGERS_XML_DATA , aura une valeur de 18317322, puis en utilisant cet ID, je peux get la valeur de 19234819 , c'est alors le dernier environnement qui triggers tous mes environnements de cette identification.
Donc, ce que j'essaie de faire est la suivante:
ntext
dans le SQL pour get l'ID de l'environnement (ceci est dans le noeud / élément / valeur suivant . Y a-t-il un moyen de le faire?
Voir ma réponse ici – https://answers.atlassian.com/questions/44908050/how-to-get-the-sortinggger-information-fr-the-bamboo-database
Pas sûr qu'il soit possible de faire avec SQL simple
Qu'en est-il de l'utilisation de l' API REST de Bamboo
http://bamboo_host/rest/api/latest/plan.json?expand=plans.plan.actions