İki sentim: Bunun iyi bir fikir olduğunu sanmıyorum. GYTE "zaman içinde farklı noktalarda dosyaları bir dizi depolama enstantane" gibi bir şey yok, bu yüzden olabilir mükemmel böyle bir şey için GIT kullanmak, ama bu demek değildir gerekir . GIT, kaynak kodunu saklamak için tasarlanmıştır, bu nedenle işlevselliklerinin çoğunu kaçırırsınız ve kolaylık sağlamak için çok fazla işlem yaparsınız.
Bunu düşündüğünüzün ana nedeninin "verilerin ve kodun bir kopyasını senkronize tutmak" olduğunu ve bunun kodunuzun 2.0 sürümünün 1.0 sürümünden farklı bir veritabanı şeması gerektirmesinden korktuğunuz anlamına geldiğini varsayalım. . Daha basit bir çözüm, veritabanı şemasını, CREATE
ifadeler içeren bir SQL komut dosyası kümesi olarak Git deponuzdaki kaynak kod boyunca saklamak olacaktır . Ardından, kurulum prosedürünüzün bir kısmı bu komut dosyalarını önceden kurulmuş bir veritabanı sunucusunda çalıştırmak olacaktır.
Just -d tablolarının asıl içeriğininCREATE
kaynak kodunuzun sürümüyle ilgisi yoktur. Yazılımınızı, sürüm 1.0'ı, sunuculara ve farklı şirketler tarafından farklı ekiplerce kullanılan B sunucusuna yüklediğinizi düşünün. Birkaç hafta sonra, şemalar tamamen aynı olsa bile, tabloların içerikleri çok farklı olacaktır.
Veritabanının içeriğini yedeklemek istediğiniz için, size , yedekleme dökümünü, dökümü ait olduğu yazılımın güncel sürümüyle etiketleyen bir yedekleme betiği kullanmanızı öneririm . Komut dosyası GIT deposunda olmalıdır (kaynak kod sürüm dizgisine erişebilsin), ancak dökümlerin kendisi bir sürüm kontrol sistemine ait değildir.
EDIT :
Soruyu motive eden orijinal yazıyı okuduktan sonra , bunu daha da şüpheli bir fikir olarak görüyorum. Kilit nokta, mysqldump
komutun bir DB'nin mevcut durumunu bir dizi SQL INSERT
deyimine dönüştürmesidir ve GIT bunları yalnızca güncel tablo satırlarını almak için dağıtabilir.
Bu mysqldump
bölüm sağlam, çünkü bu MySQL'in belgelerinde listelenen yedekleme yöntemlerinden biri . GIT kısmı, yazarın , MySQL de dahil olmak üzere çökmelerden kurtulmak için veritabanı sunucularının işlem günlüğü tuttuğunu fark edemediği yerdir . O olduğu bu günlüğünü kullanarak size veritabanı için artımlı yedeklemeler oluşturması gerektiğini, değil GIT. Bu, her şeyden önce, GIT deposunu sonsuzluğa ve ötesine şişirmek yerine, kurtarma işleminden sonra günlükleri döndürebilir veya temizleyebilme avantajına sahiptir ...