How can we help you today? How can we help you today?
AlexYates
SQL Change Automation has two main components: 1. A Visual Studio Extension (previously called ReadyRoll) which is an alternative format for source controlling your database changes to SQL Source Control. The Visual Studio extension creates a project based on migration scripts rather than a desired end state (like SQL Source Control). When you deploy this package against a target database only the required scripts are run. This sounds a bit like what you want. <a rel="nofollow" href="https://documentation.red-gate.com/sca3/developing-databases-using-sql-change-automation/sql-change-automation-projects" title="Link: https://documentation.red-gate.com/sca3/developing-databases-using-sql-change-automation/sql-change-automation-projects">https://documentation.red-gate.com/sca3/developing-databases-using-sql-change-automation/sql-change-automation-projects</a> 2. A set of PowerShell cmdlets that can be used to automate the deployment of either a SQL Source Control project or a SQL Change Automation Visual Studio Extension project. If deploying a SQL Source Control project you can create a "DatabaseReleaseArtifact" which contains, amongst other things, a generated upgrade script that can be used to deploy a given version from source control to a given target database. This upgrade script can be eyeballed, tested and documented in advance however you see fit before deployment. This also sounds a bit like what you want: <a rel="nofollow" href="https://documentation.red-gate.com/sca3/reference/powershell-cmdlets/new-databasereleaseartifact" title="Link: https://documentation.red-gate.com/sca3/reference/powershell-cmdlets/new-databasereleaseartifact">https://documentation.red-gate.com/sca3/reference/powershell-cmdlets/new-databasereleaseartifact</a> So using either SQL Source Control or SQL Change Automation Visual Studio Extension project types for development, combined with the SQL Change Automation PowerShell cmdlets for deployment, you can generate your upgrade scripts in advance, store them however you wish and automate deployment. The question is whether you like the SQL Source Control or the SQL Change Automation Visual Studio Extension project type for development and the way each gets deployed by the PowerShell cmdlets. Please correct me if I'm wrong, but I think you are asking to combine the two project types because you prefer the development experience of SQL Source Control, dealing with desired end states in SSMS, but you prefer the SQL Change Automation Visual Studio Extension project format for deployment, and you are looking for a best of both worlds solution. My advice is that you are making life more complicated for yourself by combining both project types. If I were you I would accept that there a pros and cons of either project format, but that either is better than a complicated hybrid of the two. The folks at Redgate would urge you to consider switching to the SQL Change Automation Visual Studio Extension project type for CI and CD use cases - but to make that switch you need to consider whether you are happy to drop SQL Source Control. If you would like to spend 30 minutes discussing the pros and cons in more detail let me know. We offer a free 30 minute consultation to everyone. After that we can discuss rates if that's what you want. <code><a rel="nofollow" href="http://www.dlmconsultants.com">www.dlmconsultants.com</a> / comments
SQL Change Automation has two main components:1. A Visual Studio Extension (previously called ReadyRoll) which is an alternative format for source controlling your database changes to SQL Source Co...
0 votes
Hi Mary, Moving from TFS to Git is an excellent choice and your question is a very good one. The short answer to it, however, is "it depends". Everyone has their own views on the best branching strategy and it's a minefield of flame wars. For example, first read this article by Vincent Driessen. This is probably the most widely respected and referenced blog post about git branching on the internet. This branching model has become known as "gitflow": https://nvie.com/posts/a-successful-git-branching-model/ However, once you have read it, also read this blog post by Jussi Judin which calls out some of the common problems that some people see with gitflow. Essentially Jussi is arguing for trunk-based development because he feels it's better aligned with the principles of continuous integration and more natural for developers: https://barro.github.io/2016/02/a-succesful-git-branching-model-considered-harmful/ I'm sorry I don't have a simple answer for you - there is a big gap between theory and practice and ultimately you need to figure out how to bridge it for yourself. However, I would like to leave you with an exercise that I have run with various clients to help them figure out the best strategy for their team. I believe in two things: - You should avoid cherry picking changes from one branch or another. Branches should be tested and deployed in their entirety for effective, repeatable testing and simpler deployments. - Your branching strategy should mirror your project management style. You can read all the books you like about DevOps, continuous delivery and branching models, but ultimately if the way you manage your code does not match the way you manage your projects, you will forever be cutting corners, breaking your own rules and creating headaches for yourself. For this exercise, I want you to begin by leaving your theoretical ideas about good and bad branching strategies at the door and consider the reality of the way you manage your development process and map that out as if it were a branching strategy. Since, in a perfect world, your project management style and your branching strategy would be aligned, you should consider whether the diagram you have drawn would be in any way sane if you used it as your git branching strategy. This gives you a starting point - then you should think about whether you could make any simplifications in your branching or project management strategies to make life simpler - considering everything you know about DevOps, continuous delivery and widely accepted branching good and bad practices - while also considering the preferences and abilities of your team. (E.g. avoid long-running feature branches, break down bigger tasks into smaller chunks, don't ask a developer who has never used git to follow a horribly complicated branching model.) For more info about my "reality branches" exercise: http://workingwithdevs.com/branching-reality/ I hope that's useful. Good luck! / comments
Hi Mary,Moving from TFS to Git is an excellent choice and your question is a very good one. The short answer to it, however, is "it depends". Everyone has their own views on the best branching stra...
0 votes
Sounds like a sensible decision. Using pre/post should mean the "deploy to all workstations" step is just a simple "get latest"/"apply changes". / comments
Sounds like a sensible decision.Using pre/post should mean the "deploy to all workstations" step is just a simple "get latest"/"apply changes".
0 votes