Weblate のアップグレード

Docker イメージのアップグレード

公式の Docker イメージ(参照: Docker を使用したインストール)には、Weblate をアップグレードする手順がすべて組み込まれています。通常、最新バージョンを入手するだけです。他に必要な操作はありません。

一般的なアップグレード方法

アップグレードをする前に、現在の ソフトウェア要件 に変更があるかもしれないので確認してください。すべての要件がインストールまたは更新されたあと、設定の変更に合わせて settings.py を設定してください(正しい値については settings_example.py を確認)。

アップグレードする前に、必ず バージョン固有の手順 を確認してください。バージョンをスキップする場合は、アップグレードでスキップしたすべてのバージョンの指示に従ってください。スムーズな移行を確実にするために、中間バージョンにアップグレードする方が良い場合があります。複数のリリース間でのアップグレードは機能するはずですが、単一バージョンのアップグレードほど十分なテストされていません。

注釈

アップグレードが失敗した場合、データベースをロールバックできるように、アップグレードの前に完全なデータベース バックアップを実行してください( 参照: Weblate のバックアップと移動)。

  1. wsgi および Celery プロセスを停止します。アップグレードは、データベースで互換性のない変更を実行することがあるため、アップグレード中に古いプロセスが実行されないようにする方が常に安全です。

  2. Weblate のコードをアップグレードする。

    pip によるインストール方法:

    pip install -U "Weblate[all]==version"
    

    または、最新のリリース バージョンを入手するだけの場合:

    pip install -U "Weblate[all]"
    

    すべてのオプションの依存関係をインストールせずに、インストールする方法:

    pip install -U Weblate
    

    Gitチェックアウトでは、新しいソースコードを取得して、インストールを更新することが必要です。取得と更新方法:

    cd weblate-src
    git pull
    # Update Weblate inside your virtualenv
    . ~/weblate-env/bin/pip install -e '.[all]'
    # Install dependencies directly when not using virtualenv
    pip install --upgrade -e .
    # Install optional dependencies directly when not using virtualenv
    pip install --upgrade -e '.[all]'
    
  3. 新しい Weblate のリリースには、新しい Python の依存関係 が含まれていることがあります。必要な機能が含まれていることを確認してください。

  4. 設定ファイルをアップグレードするための、必要な手順については、 settings_example.py または バージョン固有の手順 を確認してください。

  5. データベース構造をアップグレードする:

    weblate migrate --noinput
    
  6. 更新された静的ファイルを収集する(参照: 実行サーバー および 静的ファイルの提供):

    weblate collectstatic --noinput --clear
    
  7. JavaScript ファイルと CSS ファイルを圧縮する(省略可能、参照: クライアント アセットの圧縮):

    weblate compress
    
  8. Git のバージョンを実行している場合は、アップグレードするたびに言語ファイルを再生成してください。再生成させるコマンド:

    weblate compilemessages
    
  9. 設定が正常であるかを確認する(参照: 運用環境の設定):

    weblate check --deploy
    
  10. Celery ワーカーを再起動する(参照: Celery を使用するバックグラウンド タスク)。

バージョン固有の手順

バージョン 5.0 で変更: バージョン固有の指示は、リリースノートに含まれるようになりました。参照: Weblate 5.5.1

古いメジャー バージョンからのアップグレード

メジャーバージョン間のアップグレードには対応していません。初めのメジャーリリースの最新のパッチレベルにアップグレードしてください。この手順を省いたアップグレードには対応していませんので、中断します。

  • もし、2.x リリースからアップグレードする場合は、必ず最初に 3.0.1 にアップグレードしてください。

  • もし、3.x リリースからアップグレードする場合は、必ず最初に 4.0.4 にアップグレードしてください。

  • もし、4.x リリースからアップグレードする場合は、必ず最初に 5.0.2 にアップグレードしてください。

他のデータベースから PostgreSQL に移行

PostgreSQL 以外のデータベースで Weblate を実行している場合は、Weblate が最適に動作できるように PostgreSQL への移行を検討してください。次の手順に従って、データベース間でデータを移行します 。移行前に Web サーバと Celery サーバの両方を停止させてください。停止していない場合は、データの不整合が発生することがあります。

PostgreSQL でデータベースの作成

通常は、Weblate を専用のデータベースと、専用のユーザーアカウントで実行してください。設定例:

# If PostgreSQL was not installed before, set the main password
sudo -u postgres psql postgres -c "\password postgres"

# Create a database user called "weblate"
sudo -u postgres createuser -D -P weblate

# Create the database "weblate" owned by "weblate"
sudo -u postgres createdb -E UTF8 -O weblate weblate

pgloader を使用した PostgreSQL への移行

pgloader は、PostgreSQL にデータを移行するための一般的な移行ツールです。この機能を使用して、Weblate データベースを移行します。

  1. PostgreSQL をデータベースとして使用するように settings.py を調整する。

  2. PostgreSQL データベース内のスキーマを移行する:

    weblate migrate
    weblate sqlflush | weblate dbshell
    
  3. pgloader を実行してデータを転送します。以下のスクリプトを使用してデータベースを移行する(できれば、pgloader の機能を理解し、設定に合わせて修正してください):

    LOAD DATABASE
         FROM      mysql://weblate:password@localhost/weblate
         INTO postgresql://weblate:password@localhost/weblate
    
    WITH include no drop, truncate, create no tables, create no indexes, no foreign keys, disable triggers, reset sequences, data only
    
    ALTER SCHEMA 'weblate' RENAME TO 'public'
    ;
    

Pootle から移行

Weblate は、そもそも Pootle を置き換えるために開発されたので、Pootle からのユーザー アカウントの移行にも対応しています。Pootle からユーザーをダンプして、importusers を使用してインポートします。