40 lines
1.8 KiB
Python
40 lines
1.8 KiB
Python
import pyodbc
|
|
from pathlib import Path
|
|
|
|
cnxn=pyodbc.connect('driver={sql server};server=bi-dsa-udv\dsa')
|
|
p=Path('F:/Users/admindenker/TFS Workspace/Datavarehus')
|
|
|
|
def traverseDirectory(x):
|
|
if (x.name=='obj' or x.name.strip()=='DataPresentationArea' or x.name=='FastTrack' or x.name=='Undervisning' or x.name=='Udvikling'):
|
|
# print(x.name)
|
|
return
|
|
[checkFile(z) for z in x.iterdir() if z.is_file and z.name.endswith('.dtsx')]
|
|
[traverseDirectory(y) for y in x.iterdir() if y.is_dir()]
|
|
def checkFile(file):
|
|
f=open(file,"r", encoding='utf-8')
|
|
for x in f:
|
|
if(x.find("DTS:ObjectName")>-1):
|
|
propertyNameTokens=x.split('=')
|
|
count=0
|
|
while count < len(propertyNameTokens):
|
|
if(propertyNameTokens[count].find("DTS:ObjectName")>-1):
|
|
propertyNameToken=propertyNameTokens[count+1].split('"')[1]
|
|
break
|
|
count+=2
|
|
if(file.stem!=propertyNameToken):
|
|
ssisproject=[a for a in file.parts if a.find("SSIS_")>-1]
|
|
if(len(ssisproject)>0):
|
|
insertIntoTable(ssisproject[0],str(file.parent),str(file.stem),propertyNameToken)
|
|
print(ssisproject[0] + ' ' + str(file.parent) + ' ' + file.stem + ' ' + propertyNameToken)
|
|
print(x)
|
|
break
|
|
else:
|
|
continue
|
|
f.close()
|
|
def insertIntoTable(ssisproject,tfspath,packagename,packagenameproperty):
|
|
curser.execute("insert into [UDV_denker].[dbo].[ssispackages](SSISProject,tfspath,PackageName,PackageNameProperty,ITPUpdate,ITUUpdate) values (?,?,?,?,?,?)",(ssisproject,tfspath,packagename,packagenameproperty,0,0))
|
|
|
|
curser=cnxn.cursor()
|
|
[traverseDirectory(x) for x in p.iterdir() if x.is_dir()]
|
|
cnxn.commit()
|