Have you ever had the need to rollback your Sitecore deployments? Or maybe an upgrade went wrong and you need to rollback the changes?
Well you should’ve taken proper backups then, shouldn’t you! Learn your lesson yet? Now go back and add proper back-up steps to your deploy process… Good. Jeez. Shortest blog post ever! Moving on…
The problem with backups is it takes time, which seems to exponentially increase as your Sitecore database increased in size, and an equally heap load of time when you need to restore that database. The other problem with the backup is that it is just a point of time restore, what about changes that have happened since that backup had taken place?
A question popped up on Sitecore StackExchange asking how to remove the default items when installing using SIM. As we all know, Sitecore installs some sample items and provides the “lady with the phone” sample homepage. Normally I just ignore them, the items will be there in the deployed solution but since they are not referenced anywhere we don’t really care.
Anyway, there are no steps in SIM to clean the default items from the install of Sitecore. I’ve previously blogged about running scripts using PowerShell and TDS Post Deploy actions, but that requires SPE to be installed and the scripts to be deployed but TDS generates .update packages so that would be no good to install with SIM. However Sitecore packages themselves can contain Post Install Steps, they are not TDS specific – post install steps are used as part of the upgrade process or when installing packages such as WebForms For Marketers for example.
So why not create a custom package with a Post InstallStep to delete the default (or any) items?
I’ve recently been spending some time to upgrade our solution as well as perform some tweaks, optimizations and clean up on our deployment process. Even though I am the creator of UniCorn, I’ve almost exclusively been using Team Development for Sitecore in all the projects which I have worked on 🐘
The release of TDS 5.5 allowed developers to add their own custom deploy steps. Previously these might have been conducted manually (urgh!) or we had deployment steps added to our process in Octopus Deploy to conduct these. The post deploy steps however are better since they can be developer controlled and added to source control. Win!
The Hedgehog Team has been asking for the community to share their post deploy scripts. You can find a number of scripts here. There are some great scripts there, similar to what we currently have. But the way that script are added and managed in the TDS projects was a bit annoying to me…
So it got me thinking about that great quote by J.R.R. Tolkien:
One Script to rule them all, One Script to find them,
One Script to bring them all and using SPE bind them