new release – reversegiraffe

In the latest release, we gained 8 new commands and 5 new contributors to the dbatools master repository for a grand total of 53! We even added a few new Major Contributors to the team. Thanks to all who have joined in to make the awesomest toolset for SQL Server DBAs — we’re now offering the community nearly 190 quality commands!

Export Commands

  • Export-DbaScript
    Exports scripts from SQL Management Objects.

    Even though this command has great coverage for easy-to-export SMO objects, there will always be exceptional things like Export-DbaLogin or Export-DbaDiagnosticQuery (coming next week in the next release). Either way, Export-DbaScript is cool.

  • New-DbaScriptingOption
    Creates a new Microsoft.SqlServer.Management.Smo.ScriptingOptions object. Basically saves you the time from
    remembering the SMO assembly name 😉 Works well in conjunction with Export-DbaScript.

    See Microsoft’s page for more information.

General commands

Based on the popularity of Get-DbaDatabase and a general agreement within the team, 1.0 will include a bunch of basic Gets and Sets within the module that return SMO objects.

  • Get-DbaLinkedServer
    Gets all linked servers and summary of information from the sql servers listed
  • Get-DbaLogin
    Function to get an SMO login object of the logins for a given SQL Instance. Takes a server object from the pipe

  • Set-DbaStartupParameter
    Sets the Startup Parameters for a SQL Server instance

Other commands

  • Get-DbaEstimatedCompletionTime
    Gets execution and estimated completion time information for queries

  • Invoke-DbaDbShrink
    Shrinks all files in a database. Databases should be shrunk only when completely necessary. Many awesome SQL people have written about why you should not shrink your data files – Paul Randal and Kalen Delaney included. Sometimes, though, you gotta shrink your database. This command simplifies the process and also warns you of potential downsides (like excessively fragmented indexes.)

  • Get-DbaDbFile
    This command is intended to avoid the enumeration issues that SMO causes when getting information about files and filegroups.

Name changes

  • Invoke-DbaWhoisActive
    Invoke-DbaWhoIsActive is now Invoke-DbaWhoisActive. To get the same Grid-View behavior, you’ll have to pipe Invoke-DbaWhoisActive out to Out-GridView.

  • Install-DbaWhoisActive
    Install-DbaWhoIsActive is now Install-DbaWhoisActive. That’s all.

Quality Assurance Lead needed

Our amazing QA guy, Dan Alexander, has stepped aside for a while. Our project has seen a lot of people come and go, including myself. It’s absolutely understood and even expected. With Dan’s absence, however, we desperately need someone to lead the QA effort.

Don’t have PowerShell skills? No problem. Dan’s strongest suit was that he knew how to run our commands and find ways to break them. We all miss being politely informed of how we could improve our code so that it works in more circumstances.

Requirements
  • Beginner PowerShell experience
  • Believing in the possibility of bugs in every Pull Request and doggedly trying to find them
  • A few of your own SQL Servers. We have a lab but would like the commands tested in other configurations.
  • Knowing how to kindly deliver frustrating news to excited and well intentioned people

The new QA lead would be considered the owner of the process and would help getting Pull Requests closed in a timely manner. The whole QA process happens in GitHub, so GitHub skills would be nice, but we can teach you if you aren’t quite there yet. Dan and I both learned GitHub together when he joined last summer.

If you’re up for the task, please visit our Slack.

Code signing

One day I woke up and decided that we really must digitally sign the dbatools module. There are a number of reasons for this, but the two biggest reasons is that

  1. It’s professional AF
  2. Changes to the default Execution Policy will no longer be required

Figuring out code signing is a bit of a journey and I’ll be writing about it more in-depth on my personal blog. Something interesting about Code Signing certs – they’re expensive. Unlike the $0-$5 email verified SSL certs, a code signing cert requires verification of identity.

I was disappointed to see that the cheapest code signing certs went for around $200 year. I put out a plea on Twitter and the community response was SO AMAZING. I was so moved, I teared up.

Almost immediately after I Tweeted, I got a DM from William Dirkin and André Kamman of clouddba.io, offering to fund our cert for the foreseeable future :O Ultimately, however, it turns out that MVPs get free code signing certs from digicert so William and André will be hooking us up with a paid Appveyor subscription instead. Amazing!

Thank you so much to everyone that offered any amount. I’m still so floored. Our first fully signed script will come in about 2 weeks after I work out the details.

Licensing

dbatools is open source software that will always be free to download. We’ve been licensed under the GPLv3 since day one, and recently discussed as a team potentially switching licensing from GPLv3 to the more permissive MIT license. Ultimately, the decision was made to stay with GPLv3. If you’re wondering about the differences, visit choosealicense.com.

1.0 Reminder

On March 1, 2017, we initiated a new command freeze. This means that we will no longer be accepting commands that are not within the scope of version 1.0, which we hope to debut on June 1. We’re running a little behind because I had severe burnout, pretty much starting with the release of realfakedoors but I’m back now.

If you’re available to help, we’d love it! Even if you don’t know PowerShell, we’ll need help updating the website with screenshots and examples with the updated parameters and command names, and other tasks of that nature. We especially need testers.

Join us!

We’re all hanging out on the SQL Server Community Slack in the #dbatools channel. There’s over 640 of us there now, but the conversation load is reasonable.

Thanks for reading 😀
- Chrissy

9 thoughts on “new release – reversegiraffe

  1. Joe Olah Reply

    The Get-DbaDatabaseFile function doesn’t appear to be in this release.

      • Joe Olah Reply

        Thanks Chrissy for your quick response. It’s still not showing up. I’m running 0.8.941. I did import the latest build.

        • Chrissy LeMaire Post authorReply

          Hey Joe! The latest build is 0.8.955 – try to Update-Module or update-dbatools if you installed without the Gallery

          • Joe Olah

            I got it and it’s working great. This is going to save me a bunch of time. Thanks for all you do!

  2. wael Reply

    Hi There,
    i would like to bring up an issue i have encountered starting with 0.9.89 , hopefully you can respond with a solution.

    when i do Restore-DbaDatabase in above mentioned version a new thing started that was not there in previews versions of dbatools were something in the code will call Get-DbaDatabaseFile and i will start getting warnings about my offline DBs and skipping like (unable to access so and so) skipping and then the restore progress bar appears but stays on 0% and then will go off and the DB will be restored.

    I dont know why the tools has to scan the offline DBs when i didnt call the command to do so and this way the restore takes longer and the progress bar is not working when it shows 0% and the restore is happening in the background.

    Please advice

    • Chrissy LeMaire Post authorReply

      hey wael,
      Thanks for using the module! This should be resolved in the current release 0.9.106 (and before, but 106 for sure). Please let us know if it’s not.

      • wael Reply

        Chrissy,
        The issue still there even in the latest version you mentioned 0.9.106 and below is what happening when initiating the Restore-DbaDatabase

        WARNING: [Get-DbaDatabaseFile][18:03:04] Database [dba1] is not accessible. Skipping
        WARNING: [Get-DbaDatabaseFile][18:03:06] Database [StagingCurrent] is not accessible. Skipping
        WARNING: [Get-DbaDatabaseFile][18:03:06] Database [StagingTestRDM] is not accessible. Skipping
        WARNING: [Get-DbaDatabaseFile][18:03:15] Database [SQLJOBTest] is not accessible. Skipping
        WARNING: [Get-DbaDatabaseFile][18:03:19] Database [H1_LIVE] is not accessible. Skipping

        progress bar still shows 0% as well when the DB is restored in the background.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.