Poser une questionPoser une question
 

TraitéeInvoking the data generator from the command line

  • vendredi 16 juin 2006 04:56Tanveer Rashid Médailles de l'utilisateurMédailles de l'utilisateurMédailles de l'utilisateurMédailles de l'utilisateurMédailles de l'utilisateur
     

    Do we have the ability to invoke the data generator from the command line or as a part of the deployment of the database (i.e. using the Deploy Selection command)?

    This would be useful in automated build setups where we need to perform some sort of intermediate check after a successful creation of the database on the server but before actually loading some (test) data in it.

    -Tanveer Rashid

Réponses

  • vendredi 16 juin 2006 19:48Jamie Laflen MSFTMSFTMédailles de l'utilisateurMédailles de l'utilisateurMédailles de l'utilisateurMédailles de l'utilisateurMédailles de l'utilisateur
     Traitée

     

    DataGenerator is also exposed as a MSBuild task.  This makes it very easy to incorporate DataGeneration into any build process.  A simple project file using the MSBuild task is:

    <Project DefaultTargets="DataGen" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
      <!--Import the settings-->
      <Import Project="$(MSBuildBinPath)\Microsoft.VisualStudio.TeamSystem.Data.targets" />
     
      <Target Name="DataGen">
     <DataGeneratorTask
      ConnectionString="$(ConnectionString)"
      SourceFile="$(SourceFile)"
      PurgeTablesBeforePopulate="$(PurgeTablesBeforePopulate)"
      />
      </Target>
    </Project>

    There are other options on the build task and I would expect this to be flushed out more in future releases.

Toutes les réponses

  • vendredi 16 juin 2006 12:29Mickey GMVPMédailles de l'utilisateurMédailles de l'utilisateurMédailles de l'utilisateurMédailles de l'utilisateurMédailles de l'utilisateur
     
    I am pretty sure I heard them say that you will be able to use the data generator from the command line, but I am not sure if it is in the current CTP or not.
  • vendredi 16 juin 2006 13:10Jon Liperi - MSFTMSFTMédailles de l'utilisateurMédailles de l'utilisateurMédailles de l'utilisateurMédailles de l'utilisateurMédailles de l'utilisateur
     

    In CTP3, we do not provide a tool/executable to invoke a data generation plan from the command line. However, we do provide a public API for invoking a .dgen so you can write a simple executable yourself. The call you need to make is:

    DBTest.GenerateData(
          string dataGeneratorFilePath
    ,
          string connectionString);

    The DBTest class is located in namespace Microsoft.VisualStudio.TeamSystem.Data.UnitTesting.

    Thanks!

  • vendredi 16 juin 2006 19:48Jamie Laflen MSFTMSFTMédailles de l'utilisateurMédailles de l'utilisateurMédailles de l'utilisateurMédailles de l'utilisateurMédailles de l'utilisateur
     Traitée

     

    DataGenerator is also exposed as a MSBuild task.  This makes it very easy to incorporate DataGeneration into any build process.  A simple project file using the MSBuild task is:

    <Project DefaultTargets="DataGen" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
      <!--Import the settings-->
      <Import Project="$(MSBuildBinPath)\Microsoft.VisualStudio.TeamSystem.Data.targets" />
     
      <Target Name="DataGen">
     <DataGeneratorTask
      ConnectionString="$(ConnectionString)"
      SourceFile="$(SourceFile)"
      PurgeTablesBeforePopulate="$(PurgeTablesBeforePopulate)"
      />
      </Target>
    </Project>

    There are other options on the build task and I would expect this to be flushed out more in future releases.

  • lundi 1 décembre 2008 10:11ccoteMVPMédailles de l'utilisateurMédailles de l'utilisateurMédailles de l'utilisateurMédailles de l'utilisateurMédailles de l'utilisateur
     
    HI,  I tried your solution and I get the following error

    "C:\SQLDATA\test.txt" (default target) (1) ->
    (DataGen target) ->
      C:\SQLDATA\test.txt(5,6): error MSB4018: The "DataGeneratorTask" task failed
    unexpectedly.\r
    C:\SQLDATA\test.txt(5,6): error MSB4018: System.NullReferenceException: Object
    reference not set to an instance of an object.\r
    C:\SQLDATA\test.txt(5,6): error MSB4018:    at Microsoft.VisualStudio.TeamSyste
    m.Data.DataGenerator.ConfigurationLoader.LoadConfiguration()\r
    C:\SQLDATA\test.txt(5,6): error MSB4018:    at Microsoft.VisualStudio.TeamSyste
    m.Data.Tasks.DataGeneratorTask.Execute()\r
    C:\SQLDATA\test.txt(5,6): error MSB4018:    at Microsoft.Build.BuildEngine.Task
    Engine.ExecuteInstantiatedTask(EngineProxy engineProxy, ItemBucket bucket, Task
    ExecutionMode howToExecuteTask, ITask task, Boolean& taskResult)

        0 Warning(s)

    The command line I use is:
    MSBUILD text.txt

    Here is my test.txt file content:

    Project DefaultTargets="DataGen" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
      <!--Import the settings-->
      <Import Project="C:\Program Files\MSBuild\Microsoft\VisualStudio\v9.0\TeamData\Microsoft.VisualStudio.TeamSystem.Data.Tasks.targets" />
      <Target Name="DataGen">
         <DataGeneratorTask
              ConnectionString="Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=DBAdventureWorks;Data Source=CC-Acer\ACER_DEV2008"
              SourceFile="dgpManagerEmployees.dgen"
              PurgeTablesBeforePopulate="True"
          />
      </Target>
    </Project>

    Can it be related to the fact that I am using RC0 version of DBpro?

    Thanks!
    Ccote
  • lundi 1 décembre 2008 20:51Genevieve OrchardMSFTMédailles de l'utilisateurMédailles de l'utilisateurMédailles de l'utilisateurMédailles de l'utilisateurMédailles de l'utilisateur
     Réponse proposée
     It looks like you need to update the .targets file in your test.txt file. Try using this instead:

        <Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v9.0\TeamData\Microsoft.Data.Schema.SqlTasks.targets" />

    Let us know if you still encounter problems.
    -Genevieve Orchard (VSTS Database Edition Test Team)
    • Proposé comme réponseccoteMVPmardi 2 décembre 2008 12:49
    •  
  • mardi 2 décembre 2008 12:49ccoteMVPMédailles de l'utilisateurMédailles de l'utilisateurMédailles de l'utilisateurMédailles de l'utilisateurMédailles de l'utilisateur
     
     It works perfectly.

    Thank you!