Visualizzazioni:

Comportamento:
Quando si aggiorna o si utilizza un sistema DocuWare con un database MySQL, è possibile che si verifichino errori come quelli elencati di seguito:

DocuWare.Common.Exceptions.DWDBException:
Miscela illegale di ordinamenti (utf8_general_ci,IMPLICIT) e (utf8_unicode_ci,IMPLICIT) per l'operazione '='.


La colonna di riferimento 'organizationId' e la colonna di riferimento 'guid' nel vincolo di chiave esterna 'dwfk_XXXXXXXXXXXXXXXXXXX' sono incompatibili.

L'errore si verifica perché le tabelle del database hanno collation diverse
.

Soluzione:
Per risolvere il problema, è necessario convertire tutte le tabelle e i database nell'ordinamento corretto supportato.
Questa operazione può essere eseguita manualmente o utilizzando i seguenti script MySQL.

*** Prima di apportare qualsiasi modifica, assicurarsi di disporre di un backup di tutti i database DocuWare.
***

Passo 1: modifica della collazione di tutte le tabelle e i database

È possibile verificare la versione di MySQL attualmente installata eseguendo
SHOW VARIABLES LIKE "%version%";

Collegarsi al server MySQL tramite MySQL Workbench o uno strumento simile e accedere come utente privilegiato.
Aprire una nuova finestra di query ed eseguire lo script relativo alla versione di MySQL in uso
:

MySQL 5.X (Database interno V1/V2) ConvertireCollegamentoMySQL5
MySQL 8.0.X (Database interno V3) ConvertireCollegamentoMySQL80
MySQL 8.4.X (Database interno V4) ConvertireCollegamentoMySQL84

Assicurarsi di aver selezionato il database dwsystem come schema predefinito.
Lo script contiene due sezioni. La prima sezione serve a creare una procedura in grado di cambiare la collazione di tutte le tabelle di un determinato database.
Copiare la prima sezione nella finestra delle query ed eseguirla. Successivamente, verificare che la stored procedure esista nel database dwsystem.

La seconda sezione, come illustrato di seguito, deve essere eseguita una volta per ogni database DocuWare. A tale scopo, sostituite il nome del database nei punti evidenziati ed eseguite tutte e quattro le istruzioni in ordine per ciascun database.
Utilizzate sempre la sezione inclusa nel file di script di cui sopra, poiché le istruzioni che seguono sono solo a scopo dimostrativo.
SET @@FOREIGN_KEY_CHECKS = 0;
ALTER DATABASE
dwsystem CHARACTER SET = utf8 COLLATE = 'utf8_general_ci';
call UpdateCharsetAndCollation('
dwsystem');
SET @@FOREIGN_KEY_CHECKS=1;


Passo 2: modificare il file my.ini
*** Eseguire il backup del file my.ini prima di procedere.***

Una volta eseguito lo script per tutti i database, è necessario modificare il file my.ini del database.
(Posizione predefinita: C:\Program Files (x86)\DocuWare\Internal Database VX o C:\Program Files\DocuWare\Internal Database VX).

Cercate "character-set-server" nella sezione [mysqld] e sostituitelo con la collazione corretta per la vostra versione di MySQL:

MySQL 5.X (Database interno V1/V2) utf8
MySQL 8.0.X (database interno V3) utf8
MySQL 8.4.X (Database interno V4) utf8mb4


Cercate "collation-server" nella sezione [mysqld] e sostituitelo con il collation corretto per la vostra versione di MySQL:

MySQL 5.X (Database interno V1/V2) utf8_general_ci
MySQL 8.0.X (database interno V3) utf8mb3_unicode_ci
MySQL 8.4.X (Database interno V4) utf8mb4_0900_ai_ci



Salvare il file my.ini, quindi riavviare il server MySQL.
Se l'errore si è verificato durante un aggiornamento, è possibile tornare al Setup e fare clic su Riprova.

KBA è applicabile SOLO alle organizzazioni On-Premise.

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.