Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>Our approach is to keep each database object (tables, views, functions, packages, sprocs etc) in its own file under source control and have an integration server (<a href="http://www.jetbrains.com/teamcity/" rel="nofollow noreferrer">TeamCity</a>, <a href="http://hudson-ci.org/" rel="nofollow noreferrer">Hudson</a> etc) do a nightly build of the database - from source - where it drops and recreates the schema before checking for compilation errors in the <code>user_errors</code> system table. This lets you know when someone has introduced compilation errors into the build.</p> <p>The next step is to use something like <a href="http://code.google.com/p/pluto-test-framework/" rel="nofollow noreferrer">PLUTO</a> to add unit tests to your PL/SQL code and add those into the nightly build task. For us, this has involved having sample test datasets (also under source control) that allow us to get the database to a "known state" for the purposes of testing.</p> <p>I've not found anything that helps us much with any of the above so it's mainly a collection of Ant tasks, custom shell scripts and wizardry, which basically apply the required DDL to an empty database and use <code>DBMS_UTILITY.COMPILE_SCHEMA()</code> to, uh, compile the schema. You can add more fancy stuff later, like back-tracing objects which fail to compile or fail tests to a specific <em>submit</em> in source control, and issue "blame mail".</p> <p>I'd be really interested to see if anyone else has a better approach or if there's an off-the-shelf product that does this for me!</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload