Bir veri geçişi çalıştırdınız ve sonuçları doğrulamanız gerekiyor. Ya da bir geliştirme veritabanını bir staging kopyasıyla karşılaştırıyorsunuz. Ya da bir meslektaşınız size paylaşılan bir veritabanının kendi sürümünü gönderdi ve farklılıkları tespit etmeniz gerekiyor. Her durumda, görev aynıdır: iki SQLite veritabanına bakın ve neyin değiştiğini bulun. Mac'te, çoğu araç bunu şaşırtıcı derecede zorlaştırır çünkü tek bir veritabanı bağlantısı etrafında tasarlanmışlardır.
Veritabanlarını Karşılaştırmak Neden Genellikle Zahmetlidir
sqlite3 CLI ile, iki veritabanını karşılaştırmak iki Terminal penceresi açmak, her birinde aynı sorguyu çalıştırmak ve çıktıyı farklılıklar için görsel olarak taramak anlamına gelir. Küçük tablolar için bu işe yarar. Yüzlerce satır ve düzinelerce sütunu olan tablolar için hataya açık ve yavaştır. Yan yana görünüm yok, farklılıkların vurgulanması yok — sadece iki düz metin akışı.
Bazı geliştiriciler, bir veritabanını diğerine dönüştürmek için gereken SQL ifadelerini üreten bir komut satırı aracı olan sqldiff kullanır. Betikli karşılaştırmalar için güçlüdür ama görsel bir fark değil, ham SQL çıktısı üretir. Gerçekte neyin değiştiğini anlamak, verinin kendisini görmek yerine INSERT, UPDATE ve DELETE ifadelerini okumayı gerektirir.
Çoğu GUI veritabanı tarayıcısı, bir seferde yalnızca bir veritabanını destekleyerek sorunu daha da kötüleştirir. Veritabanı A'yı açarsınız, incelersiniz, kapatırsınız, veritabanı B'yi açarsınız ve veritabanı A'da ne gördüğünüzü hatırlamaya çalışırsınız. Bazı araçlar birden fazla bağlantıyı destekler ama her biri için manuel kurulum gerektirir.
Tome ile Her İki Veritabanını da Yan Yana Açın
Tome belge tabanlı bir macOS uygulamasıdır, yani her veritabanı kendi tam arayüzüyle kendi penceresinde açılır. İki veritabanı açın ve macOS Split View kullanarak veya pencereleri sürükleyerek yan yana düzenleyin — iki metin dosyasını karşılaştırdığınız aynı şekilde.
Görsel Şema Karşılaştırması
Her iki veritabanı da açıkken, her pencerenin kenar çubuğunu kontrol edin. Kaynağın hedefte olmayan tabloları var mı? İndeksler birinde var ama diğerinde eksik mi? Her iki kenar çubuğunun görsel bir taraması bu soruları anında yanıtlar.
Satır Düzeyinde Karşılaştırma
Her iki pencerede de aynı tabloyu açın ve veride kaydırın. Satırları hizalamak için her ikisini de aynı sütuna göre sıralayın. Her iki ızgarayı aynı anda görebildiğinizde satır sayısı veya veri değerlerindeki farklılıklar görünür hale gelir.
Her İkisini de Bağımsız Olarak Sorgulayın
Her pencerenin kendi SQL sorgu düzenleyicisi vardır. Her ikisinde de aynı toplama sorgusunu çalıştırın — SELECT COUNT(*) FROM users; — ve sonuçları yan yana karşılaştırın. Her veritabanında bağımsız olarak toplamları, ortalamaları veya belirli kayıtların varlığını kontrol etmek için daha karmaşık sorgular yazın.