I’m a DBA / database developer primarily using MS SQL. I’m about to start on a new project and I want to use this opportunity to refine my work flow. Currently I use DDL triggers to capture any DDL changes, and I have a system in place to distribute those changes. It works, but it’s very basic, and I’m looking to improve this by incorporating source control, branching, and having the ability to comment changes. I just came across Liquibase yesterday, and after watching the videos and reading the docs, I have a few questions.
My first question is, what is the best way to generate changelogs?
Is typing the XML the only way, or are there other tools that can help? The way I see it, there are several different types of changes to apply. First, there are table changes. As you say in your videos, this is a case where using a diff isn’t sufficient. What I would love is if there’s an ERD tool that can generate liquibase change logs (so if I rename a column, it renames it, and if I delete and add, it creates changelogs for the delete and add).
Then there are data changes. I could see data changes handled in multiple ways. The easiest would be to have a tool where I could either manually enter values, or run a query and produce the required insert or merge statements.
The last kind of change is to a programmatic object, such as a function or stored procedure. I currently like working in SSMS to create these, as I get the benefits of easy look ups, quick testing, context highlighting, etc. I don’t feel like I need a separate editor, but I do need a way to generate the change log. If that could be done automatically when I commit a change, or if I could take a diff to just capture these changes, since they lack the state issue that tables contain. (There are permissions to consider, but I typically have those automated).
Second, what is the current state of an IDE? I’ve seen mention of one, but I think I’ve also read that it’s out of date?
Thanks in advance. It appears like you have the heart of a really slick system here, and I hope I can find a way to incorporate it into my workflow.