2010-07-07 1 views
3

В наших выпусках иногда нужно запускать скрипты на нашем производственном db. Стандартом было прикрепление файла .sql к рабочему элементу, если сценарий должен быть запущен на db.Запрос на работу Элементы, содержащие вложения определенного типа

Есть ли способ, которым я могу запросить рабочие элементы, которые содержат вложение, являющееся файлом .sql? Я бы предпочел не открывать каждый Рабочий Элемент, чтобы проверять эти вложения каждый раз, когда мне нужно нажать выпуск.

+0

Под «запросом» вы подразумеваете запрос WIQL или SQL-запрос к базе данных? – Robaticus

+0

Я бы предпочел первую, но последней хватит. Я просто смотрел, как я могу сделать последнее. – Dave

ответ

2

Это, как я сделал это, напрямую запросив базу данных TfsWorkItemTracking. Я бы предположил, что Fld10005 может быть или не быть одинаковым на других экземплярах TFS. Поля можно найти в таблице dbo.Fields.


with [project-nodes] (
    ID, 
    [Name], 
    [Path], 
    [Depth]) 
as (
    select 
     t.ID, 
     t.Name, 
     cast(t.Name as varchar(max)) as [Path], 
     0 as [Depth] 
    from dbo.TreeNodes t 
    where t.ID = 220 
    union all 
    select 
     c.ID, 
     c.Name, 
     cast(p.[Path] + '/' + c.Name as varchar(max)), 
     [Depth] + 1 
    from dbo.TreeNodes c 
    inner join [project-nodes] p 
     on c.ParentID = p.ID) 
select 
    t.[Path] as [Area Path], 
    l.Title, 
    l.Fld10005 as [Resolved Date], 
    f.OriginalName 
from dbo.WorkItemsLatest l 
inner join [project-nodes] t 
    on l.AreaID = t.ID 
inner join dbo.WorkItemFiles f 
    on l.ID = f.ID 
where f.OriginalName like '%.sql' 
and l.Fld10005 > '2010-05-21' -- ResolvedDate 
order by 
    t.Name 

1

Другим способом вы можете сделать это через WIQL, но по-прежнему поддерживать определенный уровень производительности для создания типа элемента пользовательской работы, который вы будете использовать для выполнения этих задач. Затем, если вы настроили свой WIQL запрос быть

(пол-псевдокод)

SELECT Id from WorkItems where 
WorkItemType = 'MySpecialWorkItem' AND 
Status = 'Active'; 

Затем можно перебирать и проверить приложенные файлы SQL. Использование критериев WorkItemType и Status должно значительно ограничивать количество возвращаемых записей, а повторение с помощью вложений не будет сильно влиять на производительность процесса.

+0

Это не плохое предложение, мне придется запустить это командой – Dave