Visualizzazioni:
Disclaimer:
L'installazione di database MySQL non fa parte del supporto di DocuWare.
Poiché MySQL è un'applicazione di terze parti, non abbiamo modo di risolvere eventuali problemi, consigliare impostazioni aggiuntive o controllare se l'installazione è stata completata.
DocuWare non è responsabile di eventuali sistemi danneggiati se il database viene danneggiato durante o dopo l'installazione.


Domanda:
Come aggiornare un Internal Database V3 (MySQL 8) a un Internal Database V4 (MySQL 8.4)

Risposta:
L'aggiornamento da MySQL 8 a MySQL 8.4 richiede due passaggi.
È possibile verificare la versione di MySQL attualmente installata eseguendo
SHOW VARIABLES LIKE "%version%";

Tutti i file necessari possono essere scaricati qui:
Fare clic qui

Note importanti:
Assicurarsi di chiudere tutte le applicazioni che accedono al database prima di qualsiasi tentativo di backup/dump.
Assicurarsi di avere un backup valido del database.

Assicurarsi di avere un backup della directory di installazione.

Non aggiornare DocuWare direttamente dopo l'aggiornamento di MySQL.
Lasciare che il sistema venga eseguito per qualche tempo per verificare che la funzionalità sia ancora completa.


Da MySQL 8 a MySQL 8.4
Arrestare il servizio MySQL

Se si desidera creare un nuovo servizio utilizzando i nomi corretti, eliminare il servizio MySQL correntemente esistente.
Ricreando il servizio con il nuovo nome in un secondo momento, il database interno verrà visualizzato come "Internal Database V4" all'interno del ServiceControl.
In alternativa, è possibile utilizzare il vecchio servizio utilizzando il vecchio nome "Internal Database V3".
sc delete DWMySQL3
 
Andare nella cartella di installazione di MySQL e rimuovere/ricollocare tutti i file correnti.
Estrarre InternalDatabaseV4.zip nella posizione predefinita "C:\Program Files\DocuWare\Internal Database V4" o in una posizione a scelta.
Copiare o sostituire il file my.ini nella directory dei dati di primo livello (default: C:\ProgramData\DocuWare\Internal Database V4\my.ini).
 
Se si utilizza una posizione diversa da quella predefinita, regolare i seguenti percorsi nel file my.ini nella directory dei dati di primo livello:
basedir
datadir
secure-file-priv

Come impostazione predefinita, basedir è impostata su "C:/Program Files/DocuWare/Internal Database V4", datadir su "C:/Program Files/DocuWare/Internal Database V4/Data" e secure-file-priv su "C:/ProgramData/DocuWare/Internal Database V4/Uploads".
Assicurarsi che tutti i percorsi siano validi; in caso di dubbio, accedere a tutti i percorsi nell'esploratore di file.

Se il servizio è stato eliminato all'inizio di questa fase, ricrearlo come mostrato:
sc create DWMySQL4 binPath= "\"C:\Program Files\DocuWare\Internal Database V4\bin\mysqld.exe\" --defaults-file=\"C:\Program Files\DocuWare\Internal Database V4\my.ini\" DWMySQL4" DisplayName= "DocuWare Internal Database V4" start= "auto"

Per i percorsi delle cartelle modificati, regolatevi di conseguenza, ma assicuratevi di includere correttamente i caratteri mascherati.

Se tutto è stato fatto correttamente, potete avviare il servizio MySQL utilizzando Service Control, Windows Services o il comando
sc start DWMySQL4

All'avvio di MySQL 8.4, le tabelle verranno aggiornate automaticamente.

Modificare le collation e il set di caratteri dei database in MySQL 8.4
Collegatevi al server MySQL tramite MySQL Workbench o uno strumento simile e accedete come utente privilegiato.
Eseguire il seguente script MySQL per creare la stored procedure che verrà utilizzata per modificare la collazione e il set di caratteri dei database 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 PER
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;
SE fatto ALLORA
LASCIA 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;
ESEGUIRE stmt;
DEALLOCARE PREPARE stmt;

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

 
Eseguire il seguente script MySQL una volta per ciascun database DocuWare (ad esempio dwdata, dwnotification, dwsystem e 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
;

Se si verifica un errore durante l'aggiornamento, è necessario tornare all'ultima versione funzionante.

Si prega di notare: Questo articolo è una traduzione dall'inglese. Le informazioni contenute in questo articolo si basano sulla versione originale in inglese del/i prodotto/i. Potrebbero esserci piccoli errori, ad esempio nella grammatica utilizzata nella versione tradotta dei nostri articoli. Sebbene non possiamo garantire la completa accuratezza della traduzione, nella maggior parte dei casi la troverete sufficientemente informativa. In caso di dubbi, si prega di fare riferimento alla versione inglese di questo articolo.