Comments on: Seeking input for a new tool to verify MySQL upgrades http://www.xaprb.com/blog/2009/05/29/seeking-input-for-a-new-tool-to-verify-mysql-upgrades/ Stay curious! Fri, 10 May 2013 18:25:19 +0000 hourly 1 http://wordpress.org/?v=3.5.1 By: Log Buffer #149: a Carnival of the Vanities for DBAs | Pythian Group Blog http://www.xaprb.com/blog/2009/05/29/seeking-input-for-a-new-tool-to-verify-mysql-upgrades/#comment-16515 Log Buffer #149: a Carnival of the Vanities for DBAs | Pythian Group Blog Fri, 05 Jun 2009 17:02:37 +0000 http://www.xaprb.com/blog/?p=1103#comment-16515 [...] Like Baron Schwartz’s Maatkit, for example. Baron announced this week that he is writing a book about Maatkit, and also seeking input for a new tool to verify MySQL upgrades. [...]

]]>
By: Mark Callaghan http://www.xaprb.com/blog/2009/05/29/seeking-input-for-a-new-tool-to-verify-mysql-upgrades/#comment-16490 Mark Callaghan Mon, 01 Jun 2009 03:38:33 +0000 http://www.xaprb.com/blog/?p=1103#comment-16490 Your customers may not realize the value of this tool. It is _extremely_ valuable. We have an ugly version of this tool (it works, but the code is not in good shape to be published). It is used to validate a binary every time we change MySQL. It gives us much more faith in our changes.

It found many problems during our upgrade from MySQL 4 to 5. It is much better to find these problems before an upgrade.

]]>
By: Bill Karwin http://www.xaprb.com/blog/2009/05/29/seeking-input-for-a-new-tool-to-verify-mysql-upgrades/#comment-16483 Bill Karwin Sat, 30 May 2009 15:39:38 +0000 http://www.xaprb.com/blog/?p=1103#comment-16483 In my “SQL Antipatterns” talk, I had a subject that’s pretty close to this. I didn’t offer any solutions, but I suggested that database development habits should include regression-testing the database itself (not just application code that acts on the database).

For example:

Tables, Views, Columns: verify that they exist. Verify they have the columns you expect. Verify tables and columns you dropped during an upgrade are actually gone.

Constraints: verify that an update is aborted by a constraint when it should be. NOT NULL, check constraints, foreign key constraints. Cascading behaviors.

Triggers: verify that triggers work to implement constraints, provide cascading operations, logging, etc.

Stored Procedures: test parameter signatures, test code paths, etc. just as you would a non-SQL procedure.

Bootstrap Data: verify contents of lookup tables or other initial data that is present in your “empty” database.

Queries: test all queries that are executed from your application.

ORM classes: test all ORM classes, subclasses, aggregate classes, etc. just as you would any other code.

]]>