it-swarm-tr.com

Taşıma Dosyaları - güncelleme güncelleme sql taşıma komut dosyaları oluşturma

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

https://github.com/joomla/joomla-cms/blob/staging/administrator/components/com_joomlaupdate/models/default.php#L515

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.

3
Bizmate

İ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
1
Riccardo Zorn