ビュー:
免責事項:
MySQLデータベースのインストールは、DocuWareのサポートの一部ではありません。
MySQLはサードパーティのアプリケーションであるため、トラブルシューティング、追加設定の推奨、インストールが完全に完了したかどうかの確認はできません。
インストール中またはインストール後にデータベースが破損した場合、DocuWareは破損したシステムに対して責任を負いません。


Question:
内部データベースV3(MySQL 8)を内部データベースV4(MySQL 8.4)にアップグレードする方法

Answer:
MySQL 8からMySQL 8.4へのアップデートは2つのステップで行います。
現在インストールされている MySQL のバージョンは、
SHOW VARIABLES LIKE "%version%";

必要なファイルはすべてここからダウンロードできます:
ここをクリック

重要な注意事項:
バックアップ/ダンプを試みる前に、データベースにアクセスしているすべてのアプリケーションを確実にシャットダウンしてください。
データベースの有効なバックアップがあることを確認してください。

インストールディレクトリのバックアップがあることを確認してください。

MySQLをアップグレードした後、DocuWareを直接アップグレードしないでください。
システムをしばらく稼動させて、完全な機能がまだ提供されているかどうかを確認してください。


MySQL 8からMySQL 8.4
MySQLサービスの停止

正しい名前で新しいサービスを作成したい場合は、現在存在するMySQLサービスを削除してください。
後で新しい名前でサービスを再作成することで、ServiceControl内に内部データベースが「Internal Database V4」として表示されます。
それ以外の場合は、古い「Internal Database V3」名を使用して古いサービスを使用できます。
sc delete DWMySQL3
 

InternalDatabaseV4.zipをデフォルトの場所 "C:˶Program FilesDocuWare˵Internal Database V4 "またはお好みの場所に解凍します。
my.iniファイルをトップレベルのデータディレクトリ(デフォルト:C:◆ProgramData◆DocuWare◆Internal Database V4◆my.ini)にコピーまたは置き換える。
 
デフォルト以外の場所を使用する場合は、my.iniファイル内の以下のパスを調整します。
basedir
datadir
secure-file-priv

デフォルトでは、basedir は "C:/Program Files/DocuWare/Internal Database V4" に、datadir は "C:/Program Files/DocuWare/Internal Database V4/Data" に、secure-file-priv は "C:/ProgramData/DocuWare/Internal Database V4/Uploads" に設定されています。
すべてのパスが有効であることを確認します - 疑わしい場合は、ファイルエクスプ ローラですべてのパスにアクセスします。

このステップの最初にサービスを削除した場合は、次のようにサービスを再作成し ます:
sc create DWMySQL4 binPath= "¦C:¦Program FilesDocuWare¦Internal Database V4binmysqld.exe" --defaults-file=¦C:¦Program Files¦DocuWare¦Internal Database V4my.ini"DWMySQL4" DisplayName= "DocuWare Internal Database V4" start= "auto"

変更されたフォルダーパスについては、適宜調整してください。ただし、マスクされた文字が正しく含まれていることを確認してください。

すべてが正しく行われた場合、サービスコントロール、Windowsサービス、またはコマンド
sc start DWMySQL4

MySQL 8.4の起動時に、テーブルは自動的に更新されます。

MySQL 8.4でデータベースの照合順序と文字セットを変更する
MySQL Workbenchまたは同様のツールを使用してMySQLサーバーに接続し、特権ユーザーとしてログインします。
以下のMySQLスクリプトを実行し、DocuWareデータベースの照合順序と文字セットを変更するために使用するストアドプロシージャを作成します。

DELIMITER //
CREATE PROCEDURE `dwsystem`.UpdateCharsetAndCollation`(IN DATABASE_NAME VARCHAR(255))
BEGIN
DECLARE done INT DEFAULT FALSE;
DECLARE column_done INT DEFAULT FALSE;
DECLARE tableName VARCHAR(255);
DECLARE columnName VARCHAR(255);
DECLARE columnType VARCHAR(255);
DECLARE columnCollation VARCHAR(255);

DECLARE table_cursor CURSOR FOR
SELECT table_name
FROM information_schema.tables
WHERE table_schema = DATABASE_NAME;

DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

OPEN table_cursor;
read_loop:LOOP
FETCH table_cursor INTO tableName;
IF done THEN
LEAVE read_loop;
END IF;

SET @table_sql = CONCAT('ALTER TABLE ', DATABASE_NAME, '.', tableName, ' CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;');

PREPARE stmt FROM @table_sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

END LOOP read_loop;
CLOSE table_cursor;
END//
DELIMITER ;

 
各DocuWareデータベース(dwdata、dwnotification、dwsystem、dwworkflowengineなど)に対して、以下のMySQLスクリプトを1回ずつ実行する。
SET @@FOREIGN_KEY_CHECKS = 0;
ALTER DATABASEdwsystemCHARACTER SET = utf8mb4 COLLATE = 'utf8mb4_0900_ai_ci';
call UpdateCharsetAndCollation('dwsystem');
SET @@FOREIGN_KEY_CHECKS=1

アップグレード中に何らかのエラーが発生した場合は、悲しいことに、最後に機能したバージョンにロールバックしなければなりません。

ご注意:この記事は英語からの翻訳です。この記事に含まれる情報は、オリジナルの英語版製品に基づくものです。翻訳版の記事で使用されている文法などには、細かい誤りがある場合があります。翻訳の正確さを完全に保証することは出来かねますが、ほとんどの場合、十分な情報が得られると思われます。万が一、疑問が生じた場合は、英語版の記事に切り替えてご覧ください。