Nasıl Doktrini ile senkronize iki gelişme veritabanları tutmak için?

2 Cevap php

(Make this CW if needed) We are two developers working on a web application based (PHP5, ZF, Doctrine, MySQL5). We are working each with a local webserver and a local database. The database schema is defined in a YAML file.

Senkronize bizim veritabanı şemaları tutmak için en iyi yolu nedir?

İşte biz bunu nasıl: geliştirici "A" bir değişiklik yaptığında, o bir göç sınıf oluşturur. Sonra göç dosya geliştirici "B" sınıfı göç yürütür taahhüt.

Ama her db değişikliği ile ilgili bir göç sınıf oluşturarak oldukça sıkıcı bir süreçtir.

Eğer daha iyi bir çözüm var mı?

2 Cevap

Ben Doktrin ile Zend Framework nasıl bilmiyorum. İşte uskur ile Symfony'de yapacağını nasıl. Tam prosedürü değişebilir, ancak altta yatan kavram aynı olsa.

Benim DAL birim testleri var.

Zaman şema değişiklikleri, biz (Sen do, bir kaynak denetimi var, değil mi) YML ve oluşturulan ORM kodu kontrol edin. Ben anında tüm check-in alacak anlam, otomatik moduna check-in set.

Şema değişiklikleri işimi etkilemez yoksa, o zaman ben sadece değişiklikleri görmezden. Şema değişiklikleri benim bir şey kırarsa, o zaman ben symfony propel build command ile etajer benim formu, ORM sınıfları ve yeniden inşa edecek. Bu altyapıları Yeniden sadece tek bir komut satırı şeydir, yani hiçbir sorun benim için vardır.

Son olarak, yeniden sonra, ben her şeyin yolunda olduğundan emin olun, benim birim testler olacak. Eğer değilse, ben daha onları sabit almak!

Ben bu soru zaten cevap olduğunu görmek ama Doktrini şeyi uçurmak zorunda kalmadan sizin için veritabanları geçirebilirsiniz. Biz bir geliştirici, onun / onu yerel yaml dosyasını değiştirir lokal yeni modeller üretir, Doktrini kullanarak bir göç yaratır, göç lokal yeni yaml dosyası ve göç hem çekler, sonra db değiştirmek için bu çalışan her şema değişikliği için kullanabilirsiniz. Sonra diğer geliştiricilerin, değiştirilen yaml dosya ve göç kontrol sonra yeni modeller üretmek ve kendi db eşitlemek için göç çalıştırın. QA ve üretim ortamları için kod dağıtma hemen hemen aynı süreçtir.

Doktrin göçler hakkında daha fazla bilgi bulunabilir the Doctrine site.