Biz veritabanı şemaları 5 farklı tesisler (üretim, evreleme ve birkaç geliştirme sistemler) arasında senkronize ve sürüm kontrol yedeklenen tutmak için bcwoord benzer şeyleri kullanmak, ve oldukça iyi çalışıyor. Ben biraz ayrıntılı olacak:
Veritabanı yapısını senkronize etmek için, biz komut geçerli sürüm numarasını saklamak için ekstra bir tabloyu kullanan tek bir komut dosyası, update.php, vb sayılı dosya sayısı 1.SQL, 2.sql, 3.sql var veritabanı. N.sql dosyalar veritabanı sürümü N sürümü (N-1) gitmek için, elle hazırlanmış bulunmaktadır.
Bunlar, tablolar eklemek sütun eklemek, Temelde, her şeyi yapabilir, kullanıcı tipleri, vb gibi "usta" veri satırları eklemek, sütun bırakın sonra yeni bir sütun biçiminde eski bir veri göç ve doğru veri ile kullanılabilir göç komut verileri asla kaybetmeyeceğim.
Güncelleştirme script gibi çalışır:
- Veritabanına bağlanın.
- (Malzeme will yanlış çünkü) [mysqldump] geçerli veritabanının yedeğini.
- O yoksa (_meta denir) muhasebe tablo oluşturun.
- _meta Tablosundan mevcut sürümünü okuyun. Bulunamadı eğer 0 varsayalım.
- Tüm. Sql dosyaları, VERSİYONU daha yüksek numaralı sırayla onları yürütmek
- Dosyalardan biri bir hata üretilen eğer: geri yedekleme rulo
- Aksi takdirde, idam yüksek. Sql dosyası muhasebe tablodaki sürümünü güncellemek.
Her kaynak kontrolü gider ve her kurulum (uygun veritabanı şifre vs ile update.php çağırarak) tek bir komut dosyası ile en son sürüme güncellemek için bir komut dosyası var. Biz otomatik veritabanı güncelleme komut dosyasını çağıran bir komut dosyası aracılığıyla güncelleme evreleme ve üretim ortamlarını SVN, yani bir kod güncellemesi gerekli veritabanı güncellemeleri ile birlikte geliyor.
Biz de sıfırdan tüm veritabanını yeniden aynı komut dosyasını kullanabilirsiniz; biz sadece bırakın ve veritabanı yeniden, daha sonra tamamen veritabanını yeniden doldurmanız olacaktır komut dosyasını çalıştırın. Biz de otomatik test için boş bir veritabanı doldurmak için komut dosyasını kullanabilirsiniz.
Bu sistemi kurmak için sadece birkaç saat sürdü, bu kavramsal basit ve herkes sürüm numaralandırma düzeni alır ve ileriye taşımak için yeteneğine sahip ve değişiklikleri iletişim veya elle çalıştırmak zorunda kalmadan, veritabanı tasarımı gelişen paha biçilmez olmuştur tüm veritabanları üzerinde.
Beware when pasting queries from phpMyAdmin though! Bu oluşmaya sorguları genellikle bu komut kıracak beri kesinlikle istemediğiniz veritabanı adını içerir! Sistemi üzerinde veritabanı Mydb denir değilse mydb
. newtable
(...) başarısız olacaktır CREATE TABLE gibi bir şey. Biz izin vermemek olacaktır. Birisi kopya / uygun kontrol olmadan phpMyAdmin yapıştırılan bir işaretidir mydb
dizesini içeren sql dosyaları ön-Yorum SVN kanca yarattı.