Muchas instalaciones de Alfresco de las que he visto son bastante estáticas, y quizás uno de los motivos principales es que si las cosas funcionan no se tocan. Otro de los motivos suele ser que hay desarrollos involucrados en la instalación que se deberian validar contra la nueva versión (aunque la experiencia me demuestra que desarrollos hechos para 2.0c han seguido funcionando en versiones 3.4d no está de más asegurarse).
Antes de nada nos deberemos plantear nuestros motivos para hacer actualizar Alfresco. ¿ Hay bugs en nuestra versión que queremos resolver ? (changelog de versiones 3.4.3 en adelante) ¿ Queremos alguna funcionalidad nueva ? (release notes para community)
Una vez decidida la actualización es la hora de ver sobre que versiones deberemos pasar para llegar a la que queremos. Alfresco suele diferenciar entre versiones menores y mayores y siempre es recomendable pasar a la última versión menor antes de hacer un salto a una mayor aunque el diagrama para la versión 4.0 muestra actualizaciones directas desde 3.1 en adelante:
Una vez tenemos claro nuestro escenario conviene hacerse varias preguntas:
Alfresco provee de un mecanismo sencillo de actualización que basicamente se centra un leer el nuevo war y parchear la base de datos a la nueva versión. Por este mismo mecanismo no se debe tocar nunca el contenido desplegado de Alfresco y se debe usar el directorio de extension que nos ayuda a tener toda la configuración centralizada en un directorio.
Lo ideal si tenemos tiempo y espacio sería tener una copia con datos y trabajar primero sobre esa ya que será el entorno más parecido al escenario final. Manos a la obra:
Durante este proceso de actualización puede ser recomendable hacer una reindexación del repositorio estableciendo en alfresco-global.properties el parámetro
NOTA: en este proceso se ha mantenido la indexación con lucene. Si queremos empezar a usar SOLR primero deberemos actualizar con lucene para que se ejecuten algunos scripts y una vez se haya actualizado se puede migrar a SOLR.
Información obtenida de:
http://wiki.alfresco.com/wiki/General_Upgrade_Process
http://docs.alfresco.com/4.0/index.jsp
Antes de nada nos deberemos plantear nuestros motivos para hacer actualizar Alfresco. ¿ Hay bugs en nuestra versión que queremos resolver ? (changelog de versiones 3.4.3 en adelante) ¿ Queremos alguna funcionalidad nueva ? (release notes para community)
Una vez decidida la actualización es la hora de ver sobre que versiones deberemos pasar para llegar a la que queremos. Alfresco suele diferenciar entre versiones menores y mayores y siempre es recomendable pasar a la última versión menor antes de hacer un salto a una mayor aunque el diagrama para la versión 4.0 muestra actualizaciones directas desde 3.1 en adelante:
Una vez tenemos claro nuestro escenario conviene hacerse varias preguntas:
- ¿ Mis logs estan libres de errores "desconocidos" ? Deberiamos ver que la instalación en funcionamiento no esta dando errores de forma continuada ya que la actualización puede agravar el problema si no lo tenemos controlado.
- ¿ Tengo algún tipo de personalización que deberia probar? se incluyen modificaciones en apariencia, modelo de datos, desarrollos, ficheros AMP.
- ¿ Deberia actualizar algún componente ? JDK, Servidor de aplicaciones, conector de base de datos... Intentaremos ir conforme el stack oficial para enterprise ya que son versiones testeadas. Tener muy en cuenta que desde las versiones Community 3.2 se dejó de soportar oficialmente Oracle y SQL Server aunque existen proyectos de la comunidad para darles el soporte.
- ¿ Voy a disponer de una copia de mi instancia de Alfresco para realizar las copias ? El disponer de una copia con datos, aunque no estén actualizados nos puede ahorrar muchos dolores de cabeza y vueltas atrás en producción.
- ¿ Mi usuario de base de datos tiene permisos para borrar y crear tablas ?
- ¿ He tocado algo dentro del directorio de deploy ? Deberia mover toda mi configuración al directorio extension
- ¿ Estoy en una versión 3.1 o anterior ? Deberé unificar toda mi configuración del fichero custom-repository.properties en el fichero alfresco-global.properties
Alfresco provee de un mecanismo sencillo de actualización que basicamente se centra un leer el nuevo war y parchear la base de datos a la nueva versión. Por este mismo mecanismo no se debe tocar nunca el contenido desplegado de Alfresco y se debe usar el directorio de extension que nos ayuda a tener toda la configuración centralizada en un directorio.
Lo ideal si tenemos tiempo y espacio sería tener una copia con datos y trabajar primero sobre esa ya que será el entorno más parecido al escenario final. Manos a la obra:
- Pararemos Alfresco y realizaremos una copia en frio (ver la entrada de Backup)
- Instalaremos la nueva versión de Alfresco en una nueva ubicación, con una base de datos límpia y con un nuevo repositorio (directorio alf_data). Yo suelo nombrar a las instalaciones segun la versión, por ejemplo teniendo la versión 3.3g en /opt/alfresco33g y la 4.0 en /opt/alfresco40, lo mismo aplica para las bases de datos
- Verificaremos que la instalación limpia funciona correctamente y la pararemos
- Revisaremos los ficheros de configuración anteriores y llevaremos la configuración a los de la nueva versión. No se deben reutilizar los ficheros porque pueden aparecer nuevos parámetros que quedarán sin configurar. Además también deberemos incluir en este punto todos los desarrollos y personalizaciones. Esta tarea se puede hacer de manera previa al proceso de actualización y así minizaremos el downtime. Si configuramos en este punto la base de datos db.url y hibernate.default_schema (Oracle) y el repositorio de la versión anterior dir.root en el próximo reinicio se ejecutará la actualización. Si queremos hacer alguna prueba más dejar estos dos puntos para el final.
- Reiniciar alfresco y monitorizar el fichero log
2012-02-15 13:07:45,445 INFO [service.descriptor.DescriptorService] [main] Alfresco started (Community). Current version: 4.0.0 (4003) schema 5.025. Originally installed version: 3.3.0 (g 2860) schema 4.100.
Durante este proceso de actualización puede ser recomendable hacer una reindexación del repositorio estableciendo en alfresco-global.properties el parámetro
index.recovery.mode=FULL
NOTA: en este proceso se ha mantenido la indexación con lucene. Si queremos empezar a usar SOLR primero deberemos actualizar con lucene para que se ejecuten algunos scripts y una vez se haya actualizado se puede migrar a SOLR.
Información obtenida de:
http://wiki.alfresco.com/wiki/General_Upgrade_Process
http://docs.alfresco.com/4.0/index.jsp