Joomla güncellemelerini yerel olarak çalıştırmak ve daha sonra üretim sistemlerini kod dağıtımı + db geçişleri aracılığıyla güncellemek için organize bir yol arıyorum, böylece üretimde joomla'yı güncellemek veya güncellemeleri çalıştırırken siteyi devre dışı bırakmak zorunda değilim. Geçerli güncelleme bileşeni sql güncellemelerini çalıştırmak için belirli bir işlev kullanır
FinaliseUpgrade'de bazı sorguları alıyor/ayrıştırıyor ve bunları şemaya uyguluyor gibi görünüyor. Bunu doğru anlarsam, db üzerinde çalışması gereken sql dosyalarının tüm yeni sürümlerini tespit eden com_admin/sql/{DBType}/*. Sql'deki komut dosyaları/yer tutuculardan geçer.
Bu betiklerle ilgili sorun, tablo önek olarak üretim veritabanı için bir geçiş aracı olarak nasıl kullanabilirsiniz görmüyorum ve ayrıca çok tek bir konsolide geçiş komut dosyası olurdu.
Joomla'nın yaptığı değişiklikleri aslında bir taşıma dosyasında bir yere yazıp yazmadığını önerebilir misiniz?
Logs/joomla_update.php dosyası değişikliklerin bazı izlerini içerir, ancak bunlar yalnızca birkaç karakteri kaydettiği için kesilir
Herhangi bir öneri çok takdir edilmektedir.
İki senaryo:
Geliştirme, Evreleme-Yazma, Üretim
Üretim salt okunur, Evreleme içeriğin hazırlandığı ve testlerin yapıldığı yerdir. Joomla her zaman Staging'de güncellenir, daha sonra db, taahhütle birlikte kaydedilir ve üretimde çekildiğinde geri yüklenir.
Geliştirme, Evreleme, Üretim
İçerikler Üretimde düzenlenir. Joomla güncellemeleri Staging'de yapılır. Onları ittikten sonra, uzantılara/veritabanına gidin ve Düzelt'e basın. Veya daha büyük sunucular için, bunu bir sistem eklentisiyle otomatikleştirin (onAfterRoute öğesinde bazı paramları dinleyen bir eklenti yazın, yerel bir çağrı olup olmadığını kontrol edin ($ _SERVER ['REMOTE_ADDR'] = '127.0.0.1') ve bir cron işi planlayın çağırınız).
Güncelleme
Her sürüm yükseltmesinden sonra db güncellemelerini gerçekleştirmek için iki yolunuz vardır:
Otomatik
Yönetici - uzantılar - uzantı yöneticisine gidin, soldaki veritabanını tıklayın ve üstteki "Düzelt" i tıklayın.
Bu sayfada hatalar varsa (2.5'ten 3.3'e yükseltme durumunda), doğrudan URL'ye gitmeyi deneyin:
/administrator/index.php?option=com_installer&view=database
Manuel
Yukarıdakiler başarısız olduğunda, (ayrıca aşağıdaki @ Diego'nun yorumuna bakın):
find administrator/components/com_admin/sql/updates/mysql/3*.sql | grep mysql > 33.listsql
ve ilgili dosyaları sığdırır (etkilenen sürümler dosya adındadır)
Sonra, j25 sizin db önekinizdir
cat 33.listsql | xargs cat > 33.sql sed -i 's/#_/j25/' 33.sql mysql -u user --password="somepass" dbname < 33.sql