Supporting process-specific metadata in changelog files?

Hi there,


I find myself in a situation where I want to track some process information about changelogs in the changelog files. Our release cycle includes risk and duration assessments, where we notify our deployment team of (a) how likely something is to go wrong with a given change and (b) how long we expect the change to take. Right now we’re tracking this in a separate checklist that has a 1:1 mapping to liquibase changelog files:


, which would allow completely arbitrary metadata (so long as it’s correctly namespace-qualified).


So the questions I have are:

  1. Is it reasonable to store this kind of metadata within the changelog files like this?
    • And if not, what's a decent alternative?
  2. Is this a reasonable way to implement it?
  3. If I wrote a patch for the XSD to allow any namespace-qualified attribute in the appropriate places, would it be accepted?

I’ve carefully left out the question of formatted-SQL changelogs; it’s much easier to extend the format for those since liquibase totally ignores comments it doesn’t understand.


Thanks,

-o


Have a pull request. :slight_smile:


I haven’t put any thought into how (or whether) this sort of information should be exposed to extensions, so there aren’t many code changes included.


-o


I think it is reasonable to allow storage of that information. The extension system (liquibase.org/extensions) should allow custom attributes on existing change nodes and custom change nodes, but I don’t think there is support for custom attributes on changeLog or some other nodes (as you probably found), even with XML namespacing of your attributes.


If you sent an XSD and/or java file patch showing what needs to be change, I would definitely try to incorporate it.


Nathan

I’ll have a crack at it, then. Thanks; I wanted to make sure I wasn’t wasting my time before I started. :slight_smile:


-o