Vistas:

Comportamiento:
Al actualizar o utilizar un sistema DocuWare con una base de datos MySQL, pueden producirse errores como los que se indican a continuación:

DocuWare.Common.Exceptions.DWDBException:
Mezcla ilegal de intercalaciones (utf8_general_ci,IMPLICIT) y (utf8_unicode_ci,IMPLICIT) para la operación '='.


La columna de referencia 'organizationId' y la columna de referencia 'guid' en la restricción de clave externa 'dwfk_XXXXXXXXXXXXXXXXXXXXXXX' son incompatibles.

El error se produce porque las tablas de la base de datos tienen colaciones diferentes
.

Solución:
Para resolver el problema, deberá convertir todas las tablas y bases de datos a la intercalación correcta admitida.
Esto se puede hacer manualmente o mediante los siguientes scripts de MySQL.

*** Antes de realizar cualquier cambio, asegúrese de tener una copia de seguridad de todas las bases de datos de DocuWare.
***

Paso 1: Cambiar la intercalación de todas las tablas y bases de datos

Puede comprobar la versión actual de MySQL ejecutando
SHOW VARIABLES LIKE "%version%";

Conéctese al servidor MySQL mediante MySQL Workbench o una herramienta similar e inicie sesión como usuario con privilegios.
Abra una nueva ventana de consulta y ejecute el script correspondiente a su versión de MySQL
:

MySQL 5.X (Base de datos interna V1/V2) ConvertirColaciónMySQL5
MySQL 8.0.X (Base de datos interna V3) ConvertCollationMySQL80
MySQL 8.4.X (Base de datos interna V4) ConvertirColaciónMySQL84

Asegúrese de haber seleccionado la base de datos dwsystem como esquema por defecto.
El script contiene dos secciones. La primera sección se utiliza para crear un procedimiento que puede cambiar la intercalación de todas las tablas de una base de datos determinada.
Copie la primera sección en la ventana de consulta y ejecútela. A continuación, compruebe que el procedimiento almacenado existe en la base de datos dwsystem.

La segunda sección, como se ve a continuación, debe ejecutarse una vez por cada base de datos DocuWare. Para ello, sustituya el nombre de la base de datos en los lugares resaltados y ejecute las cuatro sentencias en orden para cada base de datos.
Utilice siempre la sección incluida en el archivo de secuencia de comandos anterior, ya que las sentencias que se muestran a continuación sólo tienen fines de demostración.
SET @@FOREIGN_KEY_CHECKS= 0;
ALTER DATABASE
dwsystem CHARACTER SET = utf8 COLLATE = 'utf8_general_ci';
call UpdateCharsetAndCollation('
dwsystem');
SET @@FOREIGN_KEY_CHECKS=1;


Paso 2: Modificar el archivo my.ini
*** Haga una copia de seguridad del archivo my.ini antes de continuar.***

Una vez ejecutado el script para todas las bases de datos, es necesario modificar el archivo my.ini de la base de datos.
(Ubicación por defecto: C:\Program Files (x86)\DocuWare\Internal Database VX o C:\Program Files\DocuWare\Internal Database VX).

Busque 'character-set-server' en la sección [mysqld] y sustitúyalo por la intercalación correcta para su versión de MySQL:

MySQL 5.X (Base de datos interna V1/V2) utf8
MySQL 8.0.X (Base de datos interna V3) utf8
MySQL 8.4.X (Base de datos interna V4) utf8mb4


Busque 'collation-server' en la sección [mysqld] y sustitúyalo por la colación correcta para su versión de MySQL:

MySQL 5.X (Base de datos interna V1/V2) utf8_general_ci
MySQL 8.0.X (Base de datos interna V3) utf8mb3_unicode_ci
MySQL 8.4.X (Base de datos interna V4) utf8mb4_0900_ai_ci



Guarde el archivo my.ini y, a continuación, reinicie el servidor MySQL.
Si el error se produjo durante una actualización, ahora puede volver a la Configuración y hacer clic en Reintentar.

KBA es aplicable SÓLO a Organizaciones In situ.

Tenga en cuenta: Este artículo es una traducción del idioma inglés. La información contenida en este artículo se basa en la(s) versión(es) original(es) del producto(s) en inglés. Puede haber errores menores, como en la gramática utilizada en la versión traducida de nuestros artículos. Si bien no podemos garantizar la exactitud completa de la traducción, en la mayoría de los casos, encontrará que es lo suficientemente informativa. En caso de duda, vuelva a la versión en inglés de este artículo.