Migrar Liferay 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

  1. Crear en MySQL una base de datos vacía y un usuario con permisos suficientes para crear tablas (permisos de DBA)

    Ejemplo
    mysql -u root -p
    <password>
    CREATE SCHEMA `o3liferay` DEFAULT CHARACTER SET latin1 COLLATE latin1_general_cs ;
    CREATE USER 'o3' IDENTIFIED BY 'password';
    USE o3liferay; 
    GRANT ALL ON o3liferay TO o3;
  2. Bajar o asegurarse que esté bajo el JBoss.
  3. Descargar  el archivo hsqltomysql.sh 
    El script solo corre en plataformas linux.

    Ejecutar el script pasándole como parámetro el archivo lportal.script y un nombre de archivo de salida.

    ./hsqltomysql.sh lportal.script db.sql
    


    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

  4. Ir al DBMS, y ejecutar sobre la base creada el script generado en db.sql

  5. Revisar que no haya ningún problema.

  6. Cambiar el data source de liferay para que apunte a MySQL
    Copiar el mysql-ds.xml de ejemplo que se adjunta y modificarle el usuario, password y datos de conexión
  7. Modificar el archivo portal-ext.properties que se encuentra en <o3>/jboss/server/default/deploy/liferay.war/WEB-INF/classes
    Agregar al final

    schema.run.enabled=true
    schema.run.minimal=false
    
    hibernate.jdbc.batch_size=0
    
  8. Levantar el JBoss.
  9. Verificar que todo este funcionando correctamente.