Vues :
Clause de non-responsabilité :
L'installation des bases de données MySQL ne fait pas partie du support de DocuWare.
MySQL étant une application tierce, nous n'avons aucun moyen de résoudre les problèmes, de recommander des paramètres supplémentaires ou de vérifier si l'installation est complète.
DocuWare n'est pas responsable des systèmes corrompus si la base de données est endommagée pendant ou après l'installation.


Question :
Comment mettre à niveau une base de données interne V3 (MySQL 8) vers une base de données interne V4 (MySQL 8.4)?

Réponse :
La mise à jour de MySQL 8 vers MySQL 8.4 s'effectue en deux étapes.
Vous pouvez vérifier la version de MySQL actuellement installée en exécutant
SHOW VARIABLES LIKE "%version%" ;

Tous les fichiers nécessaires peuvent être téléchargés ici :
Cliquez ici

Notes importantes :
Assurez-vous d'arrêter toutes les applications accédant à la base de données avant toute tentative de sauvegarde/décharge.
Assurez-vous d'avoir une sauvegarde valide de votre base de données.

Assurez-vous de disposer d'une sauvegarde de votre répertoire d'installation.

Ne mettezpas DocuWare à niveau directement après la mise à niveau de MySQL.
Laissez le système fonctionner pendant un certain temps pour vérifier s'il est toujours fonctionnel.


De MySQL 8 à MySQL 8.4
Arrêt du service MySQL

Si vous souhaitez créer un nouveau service en utilisant les noms corrects, supprimez le service MySQL existant.
En recréant le service avec le nouveau nom plus tard, vous verrez la base de données interne comme "Base de données interne V4" dans le ServiceControl.
Sinon, vous pouvez utiliser l'ancien service en utilisant l'ancien nom "Base de données interne V3".
sc delete DWMySQL3
 
Allez dans le dossier d'installation de MySQL et supprimez/relocalisez tous les fichiers actuels.
Extrayez InternalDatabaseV4.zip dans l'emplacement par défaut "C:\Program Files\DocuWare\Internal Database V4" ou dans un emplacement de votre choix.
Copier ou remplacer le fichier my.ini dans le répertoire de données de premier niveau (par défaut : C:\ProgramData\DocuWare\Internal Database V4\my.ini).
 
Si un emplacement autre que celui par défaut est utilisé, ajustez les chemins suivants dans le fichier my.ini dans le répertoire de données de premier niveau :
basedir
datadir
secure-file-priv

Par défaut, basedir est défini sur "C:/Program Files/DocuWare/Internal Database V4", datadir sur "C:/Program Files/DocuWare/Internal Database V4/Data" et secure-file-priv sur "C:/ProgramData/DocuWare/Internal Database V4/Uploads".
Assurez-vous que tous les chemins sont valides - en cas de doute, accédez à tous les chemins dans l'explorateur de fichiers.

Si vous avez supprimé le service au début de cette étape, recréez-le comme suit :
sc create DWMySQL4 binPath= "C:\NProgram Files\NDocuWare\NInternal Database V4\Nbin\Nmysqld.exe\N" --defaults-file=\N "C:\NProgram Files\NDocuWare\NInternal Database V4\Nmy.ini\N" DWMySQL4" DisplayName= "DocuWare Internal Database V4" start= "auto"

Pour les chemins d'accès modifiés, ajustez-les en conséquence, mais veillez à inclure correctement les caractères masqués.

Si tout a été fait correctement, vous pouvez démarrer le service MySQL en utilisant le Service Control, Windows Services ou la commande
sc start DWMySQL4

Au démarrage de MySQL 8.4, les tables seront mises à jour automatiquement.

Modifiez les collations et le jeu de caractères des bases de données dans MySQL 8.4
Connectez-vous au serveur MySQL via MySQL Workbench ou un outil similaire et ouvrez une session en tant qu'utilisateur privilégié.
Exécutez le script MySQL suivant pour créer la procédure stockée qui servira à modifier la collation et le jeu de caractères des bases de données DocuWare.

DELIMITER //
CREDURE 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 nom_table
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 ;

 
Exécutez le script MySQL suivant une fois pour chaque base de données DocuWare (par exemple dwdata, dwnotification, dwsystem et dwworkflowengine).
SET @@FOREIGN_KEY_CHECKS = 0 ;
ALTER DATABASE dwsystem CHARACTER SET = utf8mb4 COLLATE = 'utf8mb4_0900_ai_ci' ;
call UpdateCharsetAndCollation('dwsystem') ;
SET @@@FOREIGN_KEY_CHECKS=1
;

Si une erreur survient pendant la mise à niveau, vous devez malheureusement revenir à la dernière version qui fonctionne.

Veuillez noter : Cet article est une traduction de l'anglais. Les informations contenues dans cet article sont basées sur la ou les versions originales des produits en langue anglaise. Il peut y avoir des erreurs mineures, notamment dans la grammaire utilisée dans la version traduite de nos articles. Bien que nous ne puissions pas garantir l'exactitude complète de la traduction, dans la plupart des cas, vous la trouverez suffisamment informative. En cas de doute, veuillez revenir à la version anglaise de cet article.