It is 100% unpossible to automatically diff schemas. How can a diff know that you changed the name of a column, vs removing a column and adding a new one? Or that you split out some columns into a separate table and the data has to be moved? You can get the easy stuff with SQL::Translator::Diff, but you will always have to manually check it and add things to it.
On the other hand, if your goal is to get a copy of the real data for testing, you might be better off using replication or just restoring a dump of the production data on your dev server.