anchor.diff:      serverInfo
     
   /// Runs a sql script on the server
  +/// <param name="serverInfo">Used as a connection to the database.</param>
  +/// <param name="sqlFile">The script which will be run.</param>
   let runScript serverInfo sqlFile =
       logfn "Executing script %s" sqlFile
       sqlFile
  
positive.code:       |> Disconnect          
  
  /// Runs the given sql scripts on the server
  let RunScripts connectionString scripts = 
      let serverInfo = getServerInfo connectionString 
      scripts |> Seq.iter (runScript serverInfo)
      Disconnect serverInfo
  
  /// Runs all sql scripts from the given directory on the server  
  let RunScriptsFromDirectory connectionString scriptDirectory =
      Directory.GetFiles(scriptDirectory, "*.sql")
        |> RunScripts connectionString  
negative.code: 
  /// Replaces the database files from a cache
  /// If the files in the cache are not up to date, they will be refreshed
  /// <param name="connectionString">Used to open the connection to the database.</param>
  /// <param name="targetDir">The directory where the attached files will live.</param>
  /// <param name="cacheDir">The file cache. If the files in the cache are not up to date, they will be refreshed.</param>
  /// <param name="files">The original database files.</param>
  /// <param name="attachOptions">AttachOptions for Sql server.</param>
  let ReplaceDatabaseFilesWithCache connectionString targetDir cacheDir files attachOptions =
      replaceDatabaseFiles connectionString attachOptions
          (fun _ -> CopyCached targetDir cacheDir files)
   
  /// Drops and creates the database (dropped if db exists. created nonetheless)
  /// <param name="connectionString">Used to open the connection to the database.</param>
  let DropAndCreateDatabase connectionString = 
      connectionString 
        |> getServerInfo
  