Migrar HSQL a MySQL
Contexto
La migración a una base de datos MySQL es un poco más complicada.
Recomendamos también leer este wiki para tener un abanico de posibilidades a la hora de migrar.
El procedimiento es para plataformas GNU/Linux
Procedimiento
Crear en MySQL una base de datos vacía y un usuario con permisos suficientes para crear tablas (permisos de DBA)
Ejemplomysql -u root -p <password> CREATE SCHEMA `o3db` DEFAULT CHARACTER SET latin1 COLLATE latin1_general_cs ; CREATE USER 'o3' IDENTIFIED BY 'password'; USE o3db; GRANT ALL ON o3db TO o3;
- Bajar o asegurarse que esté bajo el JBoss.
Descargar el archivo hsqlmigration.sh
El script solo corre en plataformas linux.
Ejecutar el script pasándole como parámetro el archivo default.script, un nombre de archivo de salida y un ultimo parametro opcional, si se desea solamente quedarse con los inserts de RBAC o de los CUBOS|Actualmente esto esta en una etapa experimental y no debe de usarse a la ligera|
./hsqlmigration.sh default.script db.sql [RBAC/CUBOS]
Esto debería dejarnos en el archivo db.sql el sql necesario para crear las tablas y hacer los inserts necesarios sobre la base nueva creada aplicando las correcciones necesarias para MySQL, si se le ha pasado algun parametro de los mencionados, unicamente genera los inserts para ejecutar en la nueva base de mysql.Ir al DBMS, y ejecutar sobre la base creada el script generado en db.sql agregando antes del script lo siguiente:
Añadir al sql generadoTRUNCATE TABLE <nombre de la tabla generada>; --hacer esto por cada tabla
Revisar que no haya ningún problema.
- Cambiar el data source de o3 para que apunte a MySQL
Modificar el archivo O3Server-ds.xml que se adjunta y modificarle el usuario, password y datos de conexión - Utilizar el siguiente wiki para configurar MySQL en version 6(todos los archivos necesarios para utilizar MySql con O3 se adjuntan aquí)
- Levantar el JBoss.
- Verificar que todo este funcionando correctamente.
Se destaca ademas que en el corto plazo se van a añadir los truncate al archivo generado de forma automatica.