dbsgomysql: Go için MySQL Şema ve Replikasyon Kütüphanesi
dbsgomysql, DBS Medya'nın geliştirdiği açık kaynaklı bir Go kütüphanesidir. MySQL sunucusundan şema, yetki ve replikasyon olgularını (facts) okur ve uygulamaya yapılandırılmış veri olarak sunar.
Bir tablonun birincil anahtarı var mı, bu tabloya hangi yabancı anahtarlar işaret ediyor, bağlanan hesap silme yetkisine sahip mi, replikasyon gecikmesi sınırın altında mı gibi soruları yanıtlar. MIT lisansıyla yayımlanır.
Özellikler ve Yetenekler
Sürüm farklarını üstlenir
MySQL 8.0, 8.4, 9.7 ve Percona Server for MySQL üzerinde test edilir. Yeni bir sürüm çıktığında uyumluluk çalışması uygulamada değil kütüphanede yapılır.
Şema ve replikasyon sorgularını standartlaştırır
information_schema tablolarını ve replikasyon durum çıktısını okur, yapılandırılmış veriye dönüştürür. Uygulama ne sorgu yazar ne sürüm farkı izler.
Ön denetimleri hazır sunar
Arşivleme, toplu silme veya şema değişikliği öncesi tablo, yetki ve replikasyon kontrolleri hazır gelir. Her bulgu gerekçesiyle bildirilir, engel mi uyarı mı kararı uygulamanındır. GoArchive ön denetimlerini bu kütüphaneyle yapar.
Üretim sunucusuna yük ve risk eklemez
Yalnızca okur, işlem açmaz, sunucu ayarı değiştirmez. Hiçbir sürücü veya üçüncü taraf paket içermez ve uygulamanın mevcut bağlantısını kullanır.
Sunulan Parametreler
Şema yapısı ve depolama motoru
Tablonun varlığı, depolama motoru, birincil anahtarın varlığı ve biçimi, görünmez sütunlar, silme tetikleyicileri, tablo ve sütun düzeyinde karakter seti ile karşılaştırma, iki tablo tanımı arasındaki fark.
Yabancı anahtarlar
Tablo kümesine dışarıdan işaret eden yabancı anahtarlar, dayandıkları indeks, silme ve güncelleme kuralları.
Yetkiler
Bağlanan hesabın şema ve tablo düzeyindeki yetkileri. Kanıtlanamayan yetki "yok" değil "belirsiz" olarak bildirilir.
Replikasyon ve GTID
Kanal durumu alıcı (receiver) ve uygulayıcı (applier) için ayrı ayrı, binary log durumu ve koordinatı, GTID kipi, read_only ve super_read_only ayarları, sunucu kimliği, kayıtlı replikalar, gecikmenin verilen sınırın altında olup olmadığı.
Ad güvenliği
Şema, tablo ve sütun adlarının MySQL kurallarına uygunluğu, güvenli alıntılama, geçerli ama riskli adların reddi.
Sürüm ve dağıtım kapsamı
MySQL 8.0.40 ve sonrası, 8.4, 9.7 ve Percona Server for MySQL. MariaDB ve yönetilen bulut servisleri kapsam dışıdır.
