Paideia LMSのアップグレード
このガイドでは、Paideia LMSのバージョンを更新する方法、バージョン間で何が変更されたかを調べる方法、そしてPaideiaのバージョニングシステムとそれに対応するドキュメントの更新を理解する方法について説明します。
変更点は何ですか?
Section titled “変更点は何ですか?”Paideia LMSの最新リリースは v0.6.0 です。
すべての変更の詳細なリストは、GitHubとドキュメントのPaideiaの変更履歴で確認できます。各メジャーバージョンへのアップグレードに関する重要な説明は、リリースノートに記録されています。
Paideia LMSのアップグレード
Section titled “Paideia LMSのアップグレード”Paideia LMSは単一のバイナリとして配布されているため、アップグレードは簡単です:新しいバイナリバージョンをダウンロードして、古いものを置き換えるだけです。
最新バージョンのダウンロード
Section titled “最新バージョンのダウンロード”- バイナリをダウンロード:あなたのプラットフォーム(macOS ARM64、Linux ARM64、または Linux x64)用のバイナリをPaideiaリリースページからダウンロード
- 現在のPaideiaインスタンスを停止(サービスとして実行されている場合)
- バイナリを新しいバージョンに置き換え
- Paideia LMSを再起動
データベースマイグレーション
Section titled “データベースマイグレーション”新しいバージョンでPaideia LMSを起動すると、データベースマイグレーションが起動時に自動的に適用されます。これらのマイグレーションは以下のように設計されています:
- 後方互換性:マイグレーションは既存のデータとの互換性を維持するように構造化されています
- 非破壊的:データベーススキーマの変更は、既存のデータを保持する方法で適用されます
- 安全:マイグレーションシステムは、アップグレードプロセス全体を通じてデータの整合性を確保します
マイグレーション中に問題が発生した場合、プロセスは自動的にロールバックされ、データベースは以前の状態のままになります。
アップグレード前
Section titled “アップグレード前”アップグレード前に以下の予防措置を取ることを強く推奨します:
- 毎日のバックアップ:PostgreSQLデータベースの最近のバックアップがあることを確認してください
- データベースダンプ:アップグレード前にPaideiaの組み込みデータベースダンプ機能を使用してバックアップを作成してください
- リリースノートの確認:破壊的変更や特別なアップグレード手順がないかリリースノートを確認してください
# 例:アップグレード前にデータベースダンプを作成# Paideiaの組み込みダンプ機能を使用./paideia dump --output backup-$(date +%Y%m%d).sql
# またはPostgreSQLのpg_dumpを直接使用pg_dump -h localhost -U postgres paideia_db > backup-$(date +%Y%m%d).sqlゼロダウンタイムアップグレード(ローリングアップグレード)
Section titled “ゼロダウンタイムアップグレード(ローリングアップグレード)”完全にダウンタイムを回避する必要がある場合は、ローリングアップグレードを実行できます:
- 新しいバイナリを新しいインスタンスにデプロイし、古いインスタンスを実行し続ける
- 新しいインスタンスを同じPostgreSQLデータベースとS3ストレージに向ける
- ロードバランサーを更新してトラフィックを新しいインスタンスにルーティング
- 新しいインスタンスが正常に動作していることを確認
- 確認後、古いインスタンスを停止
Paideia LMSはステートレス(すべてのデータがPostgreSQLとS3に保存される)であるため、複数のインスタンスがアップグレードプロセス中に同じデータベースに対して同時に実行できます。
セマンティックバージョニング
Section titled “セマンティックバージョニング”Paideia LMSはセマンティックバージョニングに従い、バージョン間で予想される変更の種類をユーザーに通知する予測可能なパターンを使用します。
セマンティックバージョニングは、ソフトウェアバージョン番号の X.Y.Z パターンに従います。これらの値はメジャー (X)、マイナー (Y)、およびパッチ (Z) の更新を表します。
パッチ変更は最も影響の少ない変更です。Paideia LMSの使用方法を変更せず、更新時に設定やデータを変更する必要はありません。
Paideiaが「パッチ」バージョンをリリースすると、最後の数字が増加します。(例:paideia@1.2.3 -> paideia@1.2.4)
パッチは以下の理由でリリースされる場合があります:
- 機能に影響しないバグ修正
- 動作を変更しない内部改善
- パフォーマンスの最適化
- セキュリティパッチ
- ログとエラーメッセージの改善
パッチ変更には、既存の意図しない動作を利用していた場合でも、ほとんどのバグ修正も含まれます。
マイナー変更
Section titled “マイナー変更”マイナーリリースは主に、使用したい新しい機能と改善を導入しますが、設定やデータを変更する必要はありません。一部の既存機能は、マイナーリリースで非推奨(将来のバージョンで削除される予定としてマークされ、機能し続ける)になる場合があり、最終的な削除に備える機会が提供されます。
マイナーリリースには以下のような変更が含まれます:
- 既存の機能/オプションの非推奨化と、次のメジャーリリースで削除される警告
- 新機能の導入
- 新しい設定オプションの導入
- パフォーマンスの改善
- 新しい統合や機能
マイナーリリースには、同時に小さなパッチ変更も含まれる場合があります。
メジャー変更
Section titled “メジャー変更”メジャーリリースには、少なくとも一部の既存のコードまたは設定に対する破壊的変更が含まれます。これらの破壊的変更は常にリリースノートに記録されます。
メジャーリリースにより、Paideiaは内部ロジックだけでなく、意図された動作と使用方法にも重要な変更を加えることができます。ドキュメントは最新バージョンのみを反映するように更新されます。
メジャーリリースには以下のような変更が含まれます:
- 以前に非推奨となった機能の削除
- 既存機能の変更
- 更新が必要な設定オプションの変更
- 重要なアーキテクチャの変更
- 手動介入が必要な場合があるデータベーススキーマの変更(まれ)
メジャーリリースには、通常マイナーまたはパッチリリースで個別にリリースされる非破壊的変更と改善も含まれる場合があります。
破壊的変更とデータ損失:メジャーリリースに破壊的変更やデータ損失マイグレーションが含まれる場合、これらはリリースノートに明確に指定されます。このような変更は発生する可能性が低いですが、発生した場合は、移行手順が詳細に記録されます。
- ドキュメントの改善:ドキュメントの更新はソースから構築され、バイナリリリースとは独立して更新できます。
リリースノート
Section titled “リリースノート”各リリースには、以下を記録する詳細なリリースノートが含まれます:
- 新機能と機能
- バグ修正
- パフォーマンスの改善
- 破壊的変更(ある場合)
- 移行手順(必要な場合)
- 非推奨と将来の変更
アップグレード前にリリースノートを確認して、何が変更されたか、および何か対応が必要かどうかを理解してください。
バックアップの推奨事項
Section titled “バックアップの推奨事項”安全なアップグレードプロセスを確保するために、以下を推奨します:
- 毎日の自動バックアップ:PostgreSQLデータベースの毎日の自動バックアップを設定してください
- アップグレード前のバックアップ:新しいメジャーバージョンにアップグレードする前に、常にデータベースダンプを作成してください
- バックアップのテスト:バックアップを正常に復元できることを定期的に確認してください
- バックアップストレージ:バックアップを本番データベースとは別の場所に保存してください
バックアップの詳細については、インストールとセットアップガイドを参照してください。
アップグレードのトラブルシューティング
Section titled “アップグレードのトラブルシューティング”アップグレード中またはアップグレード後に問題が発生した場合:
- リリースノートを確認して、既知の問題や特別な手順を確認してください
- ログを確認して、問題を示している可能性のあるエラーメッセージを確認してください
- 必要に応じてバックアップから復元し、サポートに連絡してください
- GitHub issuesを確認して、他の人が同様の問題に遭遇しているかどうかを確認してください
ほとんどのアップグレードの問題は、最近のバックアップがあることを確認し、リリースノートに注意深く従うことで解決できます。
Learn