簡體   English   中英

自動創建 Composer 命令以將 TYPO3 升級到下一個主要版本

[英]Automate creation of Composer command for upgrading TYPO3 to next major version

目前正在使用 TYPO3 v9 Composer將 TYPO3 站點升級到下一個主要版本 10.4。

如何自動化該過程 - 而不是手動將 composer 命令放在一起,我必須檢查每個擴展並找出我需要升級到哪個版本,有沒有辦法自動執行此操作或協助創建composer require命令所有系統和第三方擴展?

例如,結果我想執行這個(或等效的):

composer require typo3/cms-backend:10.4 typo3/cms-core:10.4  ...(all system extension) \
... helhum/typo3-console:^6.0.0 ... (3rdparty extensions with correct version constraint) \
--update-with-dependencies 

自動更新是一個好主意,因為它減少了重新啟動所需的后端鎖定/內容凍結時間。

最終重新啟動的步驟是:

  • 確保沒有數據被更改:鎖定后端,禁用任何會更改數據的前端 forms。
  • 獲取/同步實時數據到您的本地測試系統
  • 運行更新腳本
  • 將更新的數據上傳/同步到實時系統上的某個臨時位置
  • 暫時禁用實時網站
  • 將實時系統上的數據移動到正確的位置/導入數據庫(您甚至可以通過使用不同的數據庫和指向數據的符號鏈接來准備)
  • 重新啟用網站,刪除后端鎖定

為了使其工作,您只需要一個腳本,該腳本允許您根據需要在本地(或作為 CI 管道)重復更新過程,直到您對可重現的結果感到滿意為止。

我知道有一些幫助腳本/擴展來促進這一點,但我更喜歡將它們作為 shell 腳本放在一起。 在本地,我將擁有最新的代碼,我們現在准備的是一個將新代碼與舊數據集成的腳本(“數據”我指的是 DB 和 /fileadmin,/uploads)。

所以這里只是一些指針:

  • 如果您使用 ddev,在即將發布的 v1.17 中將有一個ddev pull命令,可以方便地獲取實時數據。 到目前為止,我將此自定義命令用於 ddev
  • vendor/bin/typo3 cleanup:命名空間中的命令可以降低您處理不一致數據庫的可能性
  • 自定義升級向導非常適合您想要使用 TYPO3 API 的任何地方。 - 您可以使用vendor/bin/typo3cms upgrade:wizard運行它們
  • Typo3-console 為您提供簡單的原始 SQL 訪問數據庫(使您無需為瑣碎的數據庫查詢創建升級向導):例如vendor/bin/typo3cms database:import <<< "UPDATE tt_content SET hidden=1 WHERE..."
  • DB 比較是vendor/bin/typo3cms database:updateschema

對於您的問題:

我是一次性更新核心和 3rdparty 擴展,還是停用(一些?)3rdparty 擴展更安全

如果安裝了某些擴展,某些升級向導的行為可能會有所不同。 對於依賴 TCA 的遷移尤其如此。 所以我建議一步更新所有擴展。

另外,我如何自動化這個過程(作曲家命令)

我這樣做的方式是你只需要運行一次 composer 命令,然后你提交composer.lock 構建它可能有點麻煩,但我認為不需要自動化它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM