Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Contexto

En ambientes en producción es una buena práctica hacer que liferay guarde sus datos en una base con mejores prestaciones que hypersonic. La misma no es adecuado por temas de seguridad, perdida de datos, etc. Su finalidad es tener una base que nos sirva para cuando instalamos tener algo disponible.

Podemos distinguir 2 situaciones:

  • Ya tenemos armado un sitio usando hypersonic y queremos migra a otra base
  • No tenemos nada armado y queremos desde el vamos usar otra base

Ambas situaciones tienen pasos en común que detallaremos primero y luego los pasos específicos para cada situación

Elección de la base de datos

Liferay funciona con varias bases de datos, nostros la hemos probado con exito en:

*MS-SQL
*MySQL
*Postgres

pero hay otras posibildades de Bases, en http://downloads.sourceforge.net/lportal/liferay-portal-sql-5.1.2.zip se puede ver los tipos soportado de acuerdo a los scripts de creación de bases.

Una vez que hayamos elegido la base, deberemos crear un base nueva y un usuario que sea dueño de la base o con permisos suficientes.

A los efectos de este HowTo supondremos que usaremos MySQL, que creamos una base que se llamará liferay y un usario liferay con una password liferaykey

el usuario liferay tiene solo derechos de
SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EXECUTE sobre la base liferay

Cambiando el datasource de liferay

Es necesario indicarle a liferay que usar para conectarse, para ello copiamos del directorio de ejemplos el datasource correspondiente a mysql.

cp <o3>/jboss/docs/examples/jca/mysql-ds.xml <o3>/jboss/server/default/deploy/liferay-mysql-ds.xml

Luego borramos el archivo <o3>/jboss/server/default/deploy/liferay-hsqldb-ds.xml y editamos <o3>/jboss/server/default/deploy/liferay-mysql-ds.xml

Veremos algo como esto:

<datasources>
  <local-tx-datasource>
    <jndi-name>MySqlDS</jndi-name>
    <connection-url>jdbc:mysql://mysql-hostname:3306/jbossdb</connection-url>
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <user-name>x</user-name>
    <password>y</password>
    <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
    <!-- should only be used on drivers after 3.22.1 with "ping" support
    <valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLValidConnectionChecker</valid-connection-checker-class-name>
    -->
    <!-- sql to call when connection is created
    <new-connection-sql>some arbitrary sql</new-connection-sql>
      -->
    <!-- sql to call on an existing pooled connection when it is obtained from pool - MySQLValidConnectionChecker is preferred for newer drivers
    <check-valid-connection-sql>some arbitrary sql</check-valid-connection-sql>
      -->

    <!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml -->
    <metadata>
       <type-mapping>mySQL</type-mapping>
    </metadata>
  </local-tx-datasource>
</datasources>

cambiamos

    <jndi-name>MySqlDS</jndi-name>
    <connection-url>jdbc:mysql://mysql-hostname:3306/jbossdb</connection-url>
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <user-name>x</user-name>
    <password>y</password>

por
Recordar que usamos una base que se llama liferay, un usuario liferay

    <jndi-name>jdbc/LiferayPool</jndi-name>
    <connection-url>jdbc:mysql://localhost:3306/liferay</connection-url>
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <user-name>liferay</user-name>
    <password>liferaykey</password>
  • No labels