Vistas:
Descargo de responsabilidad:
La instalación de bases de datos MySQL no forma parte del Support de DocuWare.
Dado que MySQL es una aplicación de terceros, no tenemos forma de solucionar ningún problema, recomendar ajustes adicionales o comprobar si la instalación se ha completado por completo.
DocuWare no se hace responsable de ningún sistema dañado si la base de datos se daña durante o después de la instalación.


Pregunta:
Cómo actualizar una base de datos interna V3 (MySQL 8) a una base de datos interna V4 (MySQL 8.4)

Respuesta:
La actualización de MySQL 8 a MySQL 8.4 requiere dos pasos.
Puede comprobar la versión de MySQL que tiene instalada ejecutando
SHOW VARIABLES LIKE "%version%";

Puede descargar todos los archivos necesarios aquí:
Haga clic aquí

Notas importantes:
Asegúrese de cerrar todas las aplicaciones que acceden a la base de datos antes de realizar cualquier copia de seguridad o volcado.
Asegúrese de tener una copia de seguridad válida de su base de datos.

Asegúrese de tener una copia de seguridad del directorio de instalación.

No actualice DocuWare directamente después de actualizar MySQL.
Deje que el sistema funcione durante algún tiempo para comprobar si se sigue dando la funcionalidad completa.


MySQL 8 a MySQL 8.4
Detenga el servicio MySQL

Si desea crear un nuevo servicio utilizando los nombres correctos, elimine el servicio MySQL existente actual.
Al volver a crear el servicio con el nuevo nombre más tarde, verá la base de datos interna como "Base de datos interna V4" dentro del ServiceControl.
De lo contrario, puede utilizar el antiguo servicio utilizando el antiguo nombre "Base de datos interna V3".
sc delete DWMySQL3
 
Vaya a la carpeta de instalación de MySQL y elimine/reubique todos los archivos actuales.
Extraiga InternalDatabaseV4.zip en la ubicación predeterminada "C:\Program Files\DocuWare\Internal Database V4" o en una ubicación de su elección.
Copie o sustituya el archivo my . ini en el directorio de datos de nivel superior (por defecto: C:\ProgramData\DocuWare\Internal Database V4\my.ini).
 
Si se utiliza una ubicación distinta de la predeterminada, ajuste las siguientes rutas en el archivo my.ini en el directorio de datos de nivel superior:
basedir
datadir
secure-file-priv

Por defecto, basedir está configurado en "C:/Archivos de programa/DocuWare/Internal Database V4", datadir en "C:/Archivos de programa/DocuWare/Internal Database V4/Data" y secure-file-priv en "C:/ProgramData/DocuWare/Internal Database V4/Uploads".
Asegúrese de que todas las rutas son válidas - en caso de duda, acceda a todas las rutas en el explorador de archivos.

Si ha eliminado el servicio al principio de este paso, vuelva a crearlo como se muestra:
sc create DWMySQL4 binPath= "\"C:\Program FilesDocuWareInternal Database V4\bin\mysqld.exe\" --defaults-file="C:\Program FilesDocuWareInternal Database V4\my.ini\" DWMySQL4" DisplayName= "DocuWare Internal Database V4" start= "auto"

Si las rutas de las carpetas se han modificado, ajústelas según corresponda, pero asegúrese de incluir correctamente los caracteres enmascarados.

Si todo se ha hecho correctamente, puede iniciar el servicio MySQL mediante el Control de servicios, los Servicios de Windows o el comando
sc start DWMySQL4

Al iniciar MySQL 8.4, las tablas se actualizarán automáticamente.

Cambie las colaciones y el juego de caracteres de las bases de datos en MySQL 8.4
Conéctese al servidor MySQL mediante MySQL Workbench o una herramienta similar e inicie sesión como usuario con privilegios.
Ejecute el siguiente script MySQL para crear el procedimiento almacenado que se utilizará para cambiar la intercalación y el juego de caracteres de las bases de datos DocuWare.

DELIMITER //
CREAR PROCEDIMIENTO `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 cursor_tabla CURSOR FOR
SELECT nombre_tabla
FROM esquema_informacion.tables
WHERE table_schema = DATABASE_NAME;

DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

OPEN tabla_cursor;
read_loop: LOOP
FETCH tabla_cursor INTO nombre_tabla;
IF done THEN
LEAVE read_loop;
END IF;

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

PREPARE stmt FROM @tabla_sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

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

 
Ejecute el siguiente script MySQL una vez para cada base de datos DocuWare (por ejemplo, dwdata, dwnotification, dwsystem y 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 se produce algún error durante la actualización, lamentablemente tendrá que volver a la última versión que funcionaba.

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.