0

バージョン 1.9 から 2.2 への Moodle サイトのアップグレードをテスト中です。テスト ボックスで、Moodle 1.9 サイトのコピーを作成しました。サイトをテスト フレームワークで動作させるには、ハードコードされた URL をテスト マシンで有効なものに更新する必要があります。そうするために、私は Moodle 1.9 内の admin/replace 機能を使用します。

http://mytestsite/admin/replace.php

結果のフォームで、切り替える URL を指定します。ドキュメントによると、ここのスクリプトは、Moodle インストールのすべてのテーブルを通過し、次のようなスクリプトを実行します。

UPDATE adodb_logsql 
SET    PARAMS = REPLACE(PARAMS, 'some_url', 'another_url')

更新プロセスは正常に機能しているようです。ただし、次の意図しない副作用があります。

データベースに保存されているサイトのコンテンツの一部は、REPLACE プロセス中に破損したように見えます。

Before: Welcome to Company’s Learning
After : Welcome to Company’s Learning 

MySQL によると、REPLACE ステートメントはマルチバイトセーフです。

私の質問:

  1. 私は何を間違っていますか?シンプルREPLACEには、これらの奇妙な副作用があってはなりません。
  2. ダメージを回復する簡単な方法はありますか?

テスト サーバー: * IIS 7 * PHP 5.3.13 * MySQL サーバー 5.5

4

2 に答える 2

1

Moodle は 1.9 から 2.2 に直接アップグレードできますが、大量のデータがある場合は 100% 安全ではありません。

最近のすべてのアップグレードで、1.8 から 1.9、1.9 から 2.0、2.0 から 2.1、2.1 から 2.2 というパスをたどりました。このプロセスは面倒ですが、データ破損のリスクを回避できます。

于 2012-06-21T14:45:48.980 に答える
0

ここでの真の問題は、データ エクスポート ツールが BOM ヘッダーを utf-8 エクスポートに追加しなかったことです。インポート中に、インポーターは数千行を解析してエンコーディングをチェックしますが、問題の原因となった行にはヒットしないため、エンコーディングが正しくないと想定されていました。

于 2012-07-16T22:12:48.197 に答える