動作:
MySQLデータベースを持つDocuWareシステムのアップグレードや使用時に、以下のようなエラーが発生することがあります:
DocuWare.Common.Exceptions.DWDBException:操作 '=' で照合順序 (utf8_general_ci,IMPLICIT) と (utf8_unicode_ci,IMPLICIT) が不正に混在しています。
参照カラム 'organizationId' と外部キー制約 'dwfk_XXXXXXXXXXXXXXXXXXXXX' の参照カラム 'guid' に互換性がありません。
このエラーは、データベーステーブルの照合順序が異なるために発生します。
解決方法:
この問題を解決するには、すべてのテーブルとデータベースをサポートされている正しい照合順序に変換する必要があります。
これは、手動で行うか、次のMySQLスクリプトを使用して行うことができます。
*** 変更を行う前に、すべてのDocuWareデータベースのバックアップがあることを確認してください。***
ステップ1:すべてのテーブルとデータベースの照合順序を変更します。
現在インストールされているMySQLのバージョンは、
SHOW VARIABLES LIKE "%version%";
MySQL Workbenchまたは同様のツールを使用してMySQLサーバーに接続し、特権ユーザーとしてログインします。
新しいクエリウィンドウを開き、MySQLのバージョンに対応するスクリプトを実行します:
| MySQL 5.X (内部データベース V1/V2) | ConvertCollationMySQL5 |
| MySQL 8.0.X(内部データベース V3) | ConvertCollationMySQL80 |
| MySQL 8.4.X(内部データベース V4) | ConvertCollationMySQL84 |
デフォルトのスキーマとしてdwsystemデータベースを選択していることを確認してください。
スクリプトには2つのセクションがあります。
最初のセクションをクエリーウィンドウにコピーし、実行してください。その後、ストアド・プロシージャがDwsystemデータベースに存在することを確認してください。
2番目のセクションは、以下に示すように、DocuWareデータベースごとに1回実行する必要があります。これを行うには、ハイライトされている箇所でデータベース名を置き換え、各データベースに対して4つのステートメントを順番に実行する。
以下のステートメントはデモンストレーションのためだけのものなので、必ず上記のスクリプトファイルに含まれているセクションを使用すること。
SET @@FOREIGN_KEY_CHECKS = 0;
ALTER DATABASE dwsystem CHARACTER SET = utf8 COLLATE = 'utf8_general_ci';
call UpdateCharsetAndCollation(' dwsystem');
SET @@FOREIGN_KEY_CHECKS=1;
ステップ2: my.iniファイルを修正する
***先に進む前にmy.iniファイルをバックアップしてください。***
スクリプトがすべてのデータベースに対して実行されたら、データベースの my.ini ファイルを修正する必要があります。
(デフォルトの場所:C:︓Program Files (x86)︓DocuWare︓Internal Database VXまたはC:︓Program Files︓DocuWare︓Internal Database VX)。
mysqld]セクションで'character-set-server'を検索し、MySQLバージョンに合った照合順序に置き換えます:
| MySQL 5.X (内部データベース V1/V2) | utf8 |
| MySQL 8.0.X (内部データベース V3) | utf8 |
| MySQL 8.4.X(内部データベース V4) | utf8mb4 |
mysqld] セクションで 'collation-server' を検索し、MySQL バージョンに合った照合順序に置き換える:
| MySQL 5.X (内部データベース V1/V2) | utf8_general_ci |
| MySQL 8.0.X (内部データベース V3) | utf8mb3_unicode_ci |
| MySQL 8.4.X (内部データベース V4) | utf8mb4_0900_ai_ci |

my.ini ファイルを保存し、MySQL サーバーを再起動します。
アップデート中にエラーが発生した場合は、セットアップに戻り、再試行をクリックします。
KBA はオンプレミス組織のみに適用されます。
