2016-09-08 32 views
5

Kalan tablo sütunlarını veritabanından kaldırmak için uygun bir yol var mı? PHPMyADMIN'e giriş yapmak ve sütunları manuel olarak silmek yerine, daha sözleşmeye dayalı bir çözüm olup olmadığını merak ediyorum.Eski veritabanı sütunları SilverStripe'de nasıl kaldırılır

Örnek SilverStripe-Akıcı yükleme ve öneki _nz-NZ ile ekstra çeviri sütunlar eklemek için her sitetree kaydını bölecek ekstra yerel (örneğin nz-NZ) modülü ekleme. Ek yerel ayarı (nz-NZ) sildiğimizi varsayalım, sütunlar/dev/build'in ardından orada kalacaklardır.

+3

Akıcı bir çözüm bilmiyorum ama bunu yapmak için bir görev yazabilirsiniz. Fluent zaten Görevler bakınız: \t [akıcı-görevleri] deneğe (https://github.com/tractorcow/silverstripe-fluent/tree/master/code/tasks) İşte iki ilişkili Modüller: \t [silverstripe-version-truncator] (https://github.com/axllent/silverstripe-version-truncator) \t [silverstripe-artefactcleaner] (https://github.com/oddnoc/silverstripe-artefactcleaner) – munomono

cevap

1

Bu işleve sahip 2.4 sürümü için harika bir modül DBPlumber vardı ama sanırım daha sonraki bir sürümünü kullanıyorsunuz! Bu V3 için yükseltilmiş olsaydı harika olurdu.

artefact cleaner modülü ideal olacaktır. github sayfasından Onun açıklama

Bul ve isteğe bağlı olarak bir SilverStripe veritabanında kullanılmayan tabloları ve alanları silmek ... olduğunu. Bir SilverStripe uygulamasının geliştirilmesi sırasında, bir veri nesnesi sınıfını silmek veya bir veri nesnesinden bir alanı kaldırmak yaygındır. Bu , veritabanınızdaki eski sütunları ve tabloları bırakır. Bu sütunları veya tabloları hala istediğiniz verileri içerdiğinden, SilverStripe çerçevesi bunları otomatik olarak silmez. Bu görev , SQL DROP ve ALTER komutları biçimindeki eski sütunları ve tabloları görüntüler. Ayrıca onları silmek için bir yol sağlar. Bunu yaparsanız, geri almaz, bu yüzden her zaman önce bir yedekleme yapın.