title: Synchronize two databases schema in MySQL
body: <p>I was looking for a portable script or command line program that can synchronize two MySQL databases schema. I am not looking for a GUI based solution because that can't be automated or run with the buid/deployment tool.</p>
  
  <p>Basically what it should do is scan database1 and database2. Check the schema difference (tables and indexes) and propose a bunch of SQL statements to run on one so that it gets the similiar structure of the other minimizing data damage as much as possible.</p>
  
  <p>If someone can indicate a PHP, Python or Ruby package where this type of solution is implemented, I can try to copy the code from there.</p>
  
  <p>A lot of MySQL GUI tools probably can do this, but I am looking for a scriptable solution.</p>
  
  <p>Edit: Sorry for not being more clear: What I am looking for is synchronization in table structure while keeping data intact as far as possible. Not data replication.</p>
  
  <p>More info:</p>
  
  <p>Why replication won't work.</p>
  
  <ol>
  <li>The installation bases are spread around the state.</li>
  <li>We want the installer to perform dynamic fixes on the DB based on chagnes made in the latest version, regardless of what older version the end user might be using.</li>
  <li>Changes are mostly like adding new column to a tables, creating new indexes, or dropping indexes, adding tables or dropping tables used by the system internally (we don't drop user data table).</li>
  </ol>
  
  <p>If it's a GUI: No it can't be used. We don't want to bunddle a 20MB app with our installer just for DB diff. Specially when the original installer is less than 1 MB.</p>