Can I deploy a specific version of my ReadyRoll project?
AlexMBanks
Posts: 15 Bronze 2
in ReadyRoll
If I have multiple SemVer folders in my project for different releases (say, 1.0.0, 2.0.0, 3.0.0), is it possible to deploy a specific version? For example, if we think a bug might be present in v2 but not v3, we may want to deploy both to compare and test.
The only workaround I can think of would be to check out the correct revisions from source control (easier if tagged, but they may not be), then build packages for each and deploy those. But it's not very convenient, especially as the project already includes all scripts for all releases. This also gets more difficult to manage on a build/deploy server.
Side note: I suppose using Programmable Objects would make this harder, as the project would only have a record of the latest (v3) scripts, not the v2 ones. But if we weren't using this feature and managing everything in ALTERs, it shouldn't make a difference, is that right?
The only workaround I can think of would be to check out the correct revisions from source control (easier if tagged, but they may not be), then build packages for each and deploy those. But it's not very convenient, especially as the project already includes all scripts for all releases. This also gets more difficult to manage on a build/deploy server.
Side note: I suppose using Programmable Objects would make this harder, as the project would only have a record of the latest (v3) scripts, not the v2 ones. But if we weren't using this feature and managing everything in ALTERs, it shouldn't make a difference, is that right?
Tagged:
Best Answer
-
dnlnln Posts: 234 Gold 2Hi Alex,
Thanks for your question. Unfortunately, ReadyRoll doesn't currently support selective deployment of version folders at the moment, and we don't have any immediate plans to introduce the feature, but it's definitely an interesting suggestion.
The main hurdle from an implementation point-of-view would be, as you already pointed out, the way that programmable objects are handled currently, so it would likely be restricted to migrations-only projects. Additionally, I can imagine some users may potentially want to choose multiple versions to deploy to a given environment and do a schema comparison as part of the process, so the type of UI required may demand more functionality than can be easily offered through a CI/deployment tool (i.e. it may require a desktop UI experience).
I've posted it on our feedback site to allow the community to comment on the idea:
https://readyroll.uservoice.com/forums/204125-readyroll-product-feedback/suggestions/20435098-deploy-specific-version-of-project-to-target-envir
Feel free to add your vote to it as well, of course! Any questions please let me knowDaniel Nolan
Product Manager
Redgate Software
Answers
Thanks for the answer and for posting this on UserVoice - I've voted for it as I think it would be a useful addition.
Shame this is not supported but I can understand why it's very difficult without a pure migrations approach. Perhaps it could be an option when programmable objects are not used in a project? It would provide a definite benefit to that approach, as at the moment I can't see much reason not to use them.
I'm not sure the multiple deployment/schema comparison situation you mentioned would need to be part of ReadyRoll. It could be handled by good deployment processes (e.g. Octopus deploying V1 and V2) and perhaps a scripted SQL Compare comparison. A UI always helps though.
More information on either approach can be found under Key Concepts > Switching branches. I hope this helps!
Product Manager
Redgate Software