On Wed, 11 Jul 2018 at 16:37, Ron <ronljohnsonjr@xxxxxxxxx> wrote: > > On 07/11/2018 03:21 PM, Christopher Browne wrote: > > I have built one that I call Mahout > > (https://github.com/cbbrowne/mahout) which has the merit of involving > > just two shell scripts, one of which is an auditing tool (pgcmp). > > > > It implements a "little language" to indicate dependencies between the > > SQL scripts that implement the DDL changes. > > > > The notable thing that I have seen "downthread" that it does not > > attempt to implement is "rollback scripts." I find that "necessity" > > to be a ruby-on-rails dogma that does not seem to fit what I see > > people doing. > > Where I work, the requirement to have rollback scripts is part of the ITIL > requirement for Changes to have a backout procedure. ITIL surely does NOT specify the use of database rollback scripts as THE SPECIFIED MECHANISM for a backout procedure. In practice, we tend to take database snapshots using filesystem tools, as that represents a backout procedure that will work regardless of the complexity of an upgrade. It is quite possible for an upgrade script to not be reversible. After all, not all matrices are invertible; there are a surprisingly large number of preconditions that are required for that in linear algebra. And in databases, not all upgrades may be reversed via rollback scripts. -- When confronted by a difficult problem, solve it by reducing it to the question, "How would the Lone Ranger handle this?"