scriptsfolderxml format
ehuggz
Posts: 10 Bronze 1
I am working through the NANT scripts provided by my Red Gate Salesman for CI Automation with TeamCity and am having some issue with the upgradescript.build file section"generate_upgrade_script_schema" which access the source repository directly via the /scriptsfolderxml flag.
I get "Error: The file <path>LocationToTesting.xml containing the script folder location XML fragment could not be parsed."
I tried several of the suggestions for the scriptsfolderxml format, even copying the <ScriptFolderLocation></ScriptFolderLocation> section from the project file generated by the UI after comparing Source to DB successfully.
SQL Compare is version: 10.2.0.1337
The scriptsfolderxml file is "LocationToFile.xml"
and presently contains the information below (I've tried many combinations).
Does anyone know the exact format required for the /scriptsfolderxml flag when accessing TFS2010?
I get "Error: The file <path>LocationToTesting.xml containing the script folder location XML fragment could not be parsed."
I tried several of the suggestions for the scriptsfolderxml format, even copying the <ScriptFolderLocation></ScriptFolderLocation> section from the project file generated by the UI after comparing Source to DB successfully.
SQL Compare is version: 10.2.0.1337
The scriptsfolderxml file is "LocationToFile.xml"
and presently contains the information below (I've tried many combinations).
Does anyone know the exact format required for the /scriptsfolderxml flag when accessing TFS2010?
<ScriptFolderLocation> <!-- SQL Compare SQL Compare Version:10.2.0.1337--> <ISOCCompareLocation version="1" type="TfsLocation"> <ServerUrl>http://pin-tfs2010:8080/tfs2010/ssdtprojects</ServerUrl> <SourceControlFolder>$/AWS2008LT/AWS2008LT</SourceControlFolder> </ISOCCompareLocation> </ScriptFolderLocation>The NANT section in question is:
<property name="migration.folder" value="Migrations" overwrite="false" /> <property name="production.revision" value="3" overwrite="false" /> <property name="ci.server" value="WEB01" overwrite="false" /> <property name="ci.database" value="AdventureWorks_TeamCity" overwrite="false" /> <property name="ci.workingdirectory" value="${environment::get-variable('CHECKOUTDIR')}" overwrite ="false" /> <property name="ci.user" value="AB" overwrite="false" /> <property name="ci.pw" value="P1" overwrite="false" /> <property name="ci.versioncontroluser" value="tc" overwrite="false" /> <property name="ci.versioncontrolpw" value="B3" overwrite="false" /> <property name="latest.scriptsfolder" value="${environment::get-variable('checkoutDir')}\AWS2008LT" overwrite="false" /> <property name="repo.location.xml" value="${ci.workingdirectory}\NantBuildScripts\LocationToTesting.xml" overwrite="false" /> <property name="latest.revision" value="${environment::get-variable('BUILD_NUMBER')}" overwrite="false" /> <exec program="${sqlcompare.executable}" resultproperty="returncode" failonerror="false"> <arg value="/scripts1:"${latest.scriptsfolder}""/> <arg value="/revision1:${latest.revision}"/> <arg value="/sourcecontrol2"/> <arg value="/revision2:${production.revision}"/> <arg value="/scriptsfolderxml:${repo.location.xml}"/> <arg value="/migrationfolder:${migration.folder}"/> <arg value="/AbortOnWarnings:high"/> <arg value="/options:Default,IgnoretSQLt"/> <arg value="/ShowWarnings"/> <arg value="/verbose"/> <arg value="/Report:"PreUpgradeReport_Schema.html""/> <arg value="/ReportType:Simple"/> <arg value="/ScriptFile:"UpgradeScript_Schema.sql""/> <arg value="/force"/>
Eric Huggins | Continuous Integration Manager
Pinnacle of Indiana
Pinnacle of Indiana
Comments
You were almost there when you copied the ScriptFolderLocation section:
I copied the contents of that section (which is xml encoded), ran it through an xml decoder (like here: http://coderstoolbox.net/string/) and then saved it to a file. Then I pointed the scriptsfolderxml flag at the file I just created.
I had to do a bit more work to get the migration folder bits to work but this got me started. I'll try to write a blog article on what I've done when I get chance.
Matt
http://mattwhetton.blogspot.com
http://www.codenutz.com/2012/09/continuous-database-deployment-with-red.html
regards
Matt
http://mattwhetton.blogspot.com
I did some work with this last week, and I think the long and the short of it is, the <ServerUrl> element is just the base URL for the server and the <SourceControlFolder> contains only the relative path.