Yalnızca şemaları (veriyi değil) karşılaştırmanız ve Perl'e erişiminiz varsa, mysqldiff işe yarayabilir. Bunu kullandım çünkü yerel veritabanlarını uzak veritabanlarıyla (SSH aracılığıyla) karşılaştırmanıza izin veriyor, bu yüzden herhangi bir veriyi boşaltmak zorunda değilsiniz.
http://adamspiers.org/computing/mysqldiff/
İki veritabanını senkronize etmek için SQL sorguları oluşturmaya çalışacaktır, ancak buna güvenmiyorum (veya aslında herhangi bir araç). Bildiğim kadarıyla, özellikle birden fazla değişiklik yapıldığında, bir veritabanı şemasını diğerine dönüştürmek için gerekli değişiklikleri tersine mühendislik için% 100 güvenilir bir yol yoktur.
Örneğin, yalnızca bir sütunun türünü değiştirirseniz, otomatik bir araç bunu nasıl yeniden oluşturacağınızı kolayca tahmin edebilir. Ancak sütunu da taşırsanız, yeniden adlandırır ve diğer sütunları ekler veya kaldırırsanız, herhangi bir yazılım paketinin yapabileceği en iyi şey muhtemelen ne olduğunu tahmin etmektir. Ve sonunda veri kaybedebilirsiniz.
Geliştirme sunucusunda yaptığınız şema değişikliklerini izlemenizi, ardından bu ifadeleri canlı sunucuda el ile çalıştırmanızı (veya bunları bir yükseltme komut dosyasına veya geçişine yuvarlamanızı) öneririm. Daha sıkıcı, ancak verilerinizi güvende tutacaktır. Ve son kullanıcıların sitenize erişmesine izin vermeye başladığınızda, gerçekten sürekli ağır veritabanı değişiklikleri yapacak mısınız?