Database Refactoring With Liquibase

Iterative development, automated testing, and refactoring are all widely understood—if not widely practiced—in the software development community, but these practices have been slow to come to the world of database development. Many responsible organizations control their schema changes with migration scripts, but few have the tools and practices in place required to enable frequent, confident, pragmatic, agile improvements in database structure as an applicaiton evolves. After this class, you'll be ready to apply well-known agile methods to your project's database development.

Evolutionary Database Development Explained
  • Refactoring

    Opportunistically making simple changes to the database to improve its design while retaining its behavioral and informational semantics.

  • Evolutionary Data Modeling

    Building the simplest thing that can possibly work...every day.

  • Automated Testing

    Apply the well-known techniques from software development to provide a safety net of automated tests to verify the informational and behvioral semantics of your code.

  • Source Control

    Few developers would consider writing code without a source code repository behind them. Learn how to extend that discpline to the database schema.

  • Sandboxes

    A critical agile development discipline applied to the database.

Liquibase
  • The Changelog

    Learn how to represent the entire schema of your database—including incremental changes—in structured, easily controllable text files that encourage you to follow agile database development practices.

  • Running Liquibase

    Learn the operations Liquibase can perform against your changelogs and your database, and look at some smart ways to wrap the tool's awkward command-line syntax.

  • A Practical Workflow

    Take control of a legacy schema with Liquibase, design your own refactorings against the distressed portions of the design, and implement them in your changelog. Bring up a new sandbox by playing these changes back against an empty database.

  • Controlling Stored Procedures

    Stored procedures, triggers, and free-form SQL scripts are not exempt from control, testing, and synchronization with live schemas.

Autobase: Liquibase Without XML
  • Syntactical Relief

    If your team balks at writing their SQL in XML, you can offer them this more expressive, Groovy-based option—without needing to learn Groovy first.