Doktrin / Symfony ile küçük şema güncellemeleri yapmak için en iyi yolu nedir?

2 Cevap php

Lütfen symfony / doktrini uygulamaya küçük şema güncelleştirmeleri yapmak için en iyi yolu nedir?

Benim sorun ben yeni bir yan proje üzerinde çalışıyorum ve zaman zaman ben gereğini bulmak gibi kendimi burada yeni bir sütun, orada yeni bir sütun ekleyerek bulmak kulüpler vardır. Ancak, benim DB zaten varolan verileri ve ben tam bir yeniden inşa ve değişiklikleri ile benim DB bırakın her zaman çalıştırmak istemiyorum.

Ben de fikstür yazmak istemiyorum. Bunlar rahatsız edici konum ve veri eklemek ve gelişmekte iken onu etrafında tutmak için benim uygulamayı kullanmak çok kolay. Ben de bu çok yapıyorum, özellikle bir ya da iki sütun eklemek için bir göç yazmak istemiyorum.

: Benim tek seçenek vardır

  1. make changes to the schema file and wipe the db after every schema change -or-
  2. update the schema file and manually run alter statements on my db

Sonuçta, ne yapmak istiyorum benim db değişiklik yapmak ve symfony rakam dışarı şema dosyası gibi görünmelidir ne veya şema dosyada değişiklik yapmak ve yeni değişiklikler mevcut yapmak için ne symfony rakam dışarı var ya bir veritabanı.

Lütfen yardım edin!

Teşekkürler. SO kullanarak ilk kez, ben bir yanıt almak görmek için sabırsızlanıyorum!

2 Cevap

Bu yazı bakın:

http://stackoverflow.com/questions/296078/can-you-generate-a-migration-from-an-existing-table-with-doctrine

and this link: http://www.doctrine-project.org/documentation/cookbook/1%5F0/en/code-igniter-and-doctrine%3Asetup-command-line-interface

Biz değişim geçirmek için migrate seçeneğini kullanarak sonra, yaml dosyasını değiştirerek bir göç dosyası üretmek için oluşturmak-göçler-fark seçeneği ile doktrin komutunu çalıştırarak doktrin değişiklikleri üreten olmuştur.

Ben ne demek istediğini biliyorum. Eğer veritabanı yapısı neye benzediğini Symfony söyleyebilirim iki yolu vardır:

  1. Yaml dosyası oluşturun -> run build-sql komut -> run insert-sql komut
  2. RDBMS'niz içinde veritabanı oluşturun -> run build-şema komutu

Yöntem 1 ile, veriler her zaman sildi alır. Yöntemle 2 ile, veri bozulmadan kalır. Yöntemi 2 ile tek sorun size yaml dosyasında vardı herhangi bir doktrin özgü niteliklerini silip edeceksiniz ve size rağmen, o bir ağrı çok daha az olduğunu, benim için içeri o geri eklemeniz gerekir veritabanına veri yeniden zorunda daha eşek.