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
- It’s professional AF
- 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
The Get-DbaDatabaseFile function doesn’t appear to be in this release.
hey Joe, try now? It should be. Plus, we also added hella fixes. This release actually had connection issues.
Thanks Chrissy for your quick response. It’s still not showing up. I’m running 0.8.941. I did import the latest build.
Hey Joe! The latest build is 0.8.955 – try to Update-Module or update-dbatools if you installed without the Gallery
I got it and it’s working great. This is going to save me a bunch of time. Thanks for all you do!
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
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.
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.
Hey Wael,
That’s not good! Please file an issue at https://github.com/dataplat/dbatools/issues/new and I’ll get Stuart to look into it.