(その他のツールは、管理設定の別の場所にあります)
データベース転送ツールを使用すると、管理者はMoodleサイトをあるデータベースタイプから別のデータベースタイプへ移行できます(例:MySQLからPostgresへ)。
このツールは現在、実験的機能に分類されており、設定 > サイト管理 > 開発 > 実験用 > データベース移行にあります。また、コマンドラインスクリプトadmin/tool/dbtransfer/cli/migrate.phpもあります。
dbtransferツールは、Moodleおよびインストール済みプラグインのXMLDBスキーマ定義を使用して、あるデータベースからデータを取得し、別のデータベースへ転送します。
このツールの使用時に発生する可能性のある問題は次のとおりです:
- 現在のデータベースにXMLDBスキーマに含まれていないオブジェクト(カラム、テーブルなど)がある場合、またはその逆の場合、それらのオブジェクトが削除されるまでdbtransferは実行されません(Moodleが以前のバージョンからアップグレードされた場合や、一部のプラグインが正しくアンインストールされていない場合などに起こることがあります)。
- 現在のデータベースに誤ってエンコードされたデータがある場合、転送はクラッシュします。その場合は、問題の原因となっているデータを見つけて修正し、dbtransferツールを再度実行してください。
- 大規模なインスタンスを移行しようとしている場合は時間がかかり、何らかのタイムアウト(データベース、PHP、Apache)が設定されていると移行が中断されることがあります。このような場合は、CLI版を使用してください。
CLIでのデータベース転送
- サイトをメンテナンスモードにします
- 処理中にデータベースへの書き込みが行われないよう、Cronを無効にします
- スクリプトを実行します(下記参照)
- 新しいデータベース設定を使用するようにconfig.phpを更新します
- テストできることはすべてテストします
- メンテナンスモードを無効にし、cronを再度有効にします
データベースのサイズによっては、処理に数時間かかる場合があります。
実行例
次の例では、移行スクリプトを実行してpostgresデータベースへ移行します:
$ sudo -u www-data /usr/bin/php /path/to/moodle/admin/tool/dbtransfer/cli/migrate.php \
--dbtype='pgsql' \
--dbhost='x.x.x.x' \
--dbname='moodleDbName' \
--dbuser='moodleUser' \
--dbpass='***' \
--dbport=5432 \
--prefix='mdl_' \
--dbsocket='/var/run/postgresql'
詳細については、sudo -u www-data /usr/bin/php /path/to/moodle/admin/tool/dbtransfer/cli/migrate.php --helpと入力してください。