title: Automated Oracle Schema Migration Tool
body: <p>What are some tools (commercial or OSS) that provide a GUI-based mechanism for creating schema upgrade scripts? To be clear, here are the tool responsibilities:</p>
  
  <ul>
  <li>Obtain connection to recent schema version (called "source").</li>
  <li>Obtain connection to previous schema version (called "target").</li>
  <li>Compare all schema objects between source and target.</li>
  <li>Create a script to make the target schema equivalent to the source schema ("upgrade script").</li>
  <li>Create a rollback script to revert the source schema, used if the upgrade script fails (at any point).</li>
  <li>Create individual files for schema objects.</li>
  </ul>
  
  <p>The software must:</p>
  
  <ul>
  <li>Use ALTER TABLE instead of DROP and CREATE for renamed columns.</li>
  <li>Work with Oracle 10g or greater.</li>
  <li>Create scripts that can be batch executed (via command-line).</li>
  <li>Trivial installation process.</li>
  <li>(Bonus) Create scripts that can be executed with SQL*Plus.</li>
  </ul>
  
  <p>Here are some examples (from StackOverflow, ServerFault, and Google searches):</p>
  
  <ul>
  <li><a href="http://www.embarcadero.co.uk/products/change_manager/" rel="noreferrer">Change Manager</a></li>
  <li><a href="http://www.oracle.com/technology/products/database/sql_developer/" rel="noreferrer">Oracle SQL Developer</a></li>
  </ul>
  
  <p>Software that does not meet the criteria, or cannot be evaluated, includes:</p>
  
  <ul>
  <li><a href="http://www.toadsoft.com/" rel="noreferrer">TOAD</a></li>
  <li><a href="http://www.allroundautomations.com/plsqldev.html" rel="noreferrer">PL/SQL Developer</a> - Invalid SQL*Plus statements. Does not produce ALTER statements.</li>
  <li><a href="http://sqlfairy.sourceforge.net/" rel="noreferrer">SQL Fairy</a> - No installer. Complex installation process. Poorly documented.</li>
  <li><a href="http://www.dkgas.com/oradbdiff.htm" rel="noreferrer">DBDiff</a> - Crippled data set evaluation, poor customer support.</li>
  <li><a href="http://www.orbit-db.com/" rel="noreferrer">OrbitDB</a> - Crippled data set evaluation.</li>
  <li><a href="http://schemacrawler.sourceforge.net/" rel="noreferrer">SchemaCrawler</a> - No easily identifiable download version for Oracle databases.</li>
  <li><a href="http://www.red-gate.com/" rel="noreferrer">SQL Compare</a> - SQL Server, not Oracle.</li>
  <li><a href="http://www.liquibase.org" rel="noreferrer">LiquiBase</a> - Requires changing the development process. No installer. Manually edit config files. Does not recognize its own baseUrl parameter.</li>
  </ul>
  
  <p>The only acceptable crippling of the evaluation version is by time. Crippling by restricting the number of tables and views hides possible bugs that are only visible in the software during the attempt to migrate hundreds of tables and views.</p>