sábado, 24 de marzo de 2012

Actualizando Sugar CRM CE 6.2.1 a 6.4.2

En este ultimo año he estado trabajando con Sugar CRM CE, y he realizado al menos una actualización mediante el panel de administración. Esto ocurría mientras la empresa para la que trabajo no tenia tantos datos almacenados. Pero ahora creo que este procedimiento lo tengo que llevar a cabo con mucho cuidado.
Como toda actualización que he llevado en la vida, la primer prueba actualización de Sugar CRM que la lleve a cabo la realice sin leer el change log de la nueva versión, y como resultado me encuentro que ciertas cosas han cambiado y que al querer ocupar el sistema, ¡Sorpresa! Han dejado de funcionar módulos. Lo bueno es que la actualización la hice sobre una copia. Siempre hay que seguir esta regla, hacer una copia de los archivos y también una copia de la base de datos.
Una cosa que me ayudo también a realizar la actualización es tener versionado el directorio de Sugar con Git :). Como siempre hacemos el primer commit.
Ahora tengo una versión que después de realizar cambios puedo regresar al punto donde se encuentra sin modificar. Como la copia que tengo es del Sugar que ocupo en producción, he creado una base de datos de prueba a la que he restaurado los datos de la base de producción, la cual montare cada que quiera volver a hacer una nueva prueba. Y por logica debo de modificar el archivo config.php con la información de la base de datos de pruebas.
Ahora si, ha empezar la actualización.

Actualización con el Wizard del panel de administración

Para empezar realice el intento mediante la interfaz gráfica descargando el parche de actualización correspondiente a la versión 6.2.x a 6.4.0. Entro al panel de administración y escojo la opción Asistente de Actualización. Una vez dentro, se realiza una comprobación automática del sistema y me encuentro con el primer problema. Los archivos que se generan con al inicializar el repositorio git no tienen permiso de escritura. Como fue el unico problema que se me presentó en este paso por medio de la consola de mi navegador ejecuto el script del botón siguiente, para continuar con la instalación, el codigo es el siguiente:
En el siguiente paso tenemos que cargar el archivo de actualización, y aqui viene el siguiente error. Una vez que termino de cargar el archivo SugarCR-Upgrade-6.2.x-to-6.4.0, no aparece en la lista de parches.

Y el problema no acaba ahí, una vez que actualizo la pagina aparece el siguiente mensaje de error:
Fatal error: Class 'UploadFile' not found in C:\xampp\htdocs\sugarcrm_s\sugarcrm\modules\UpgradeWizard\upload.php on line 85
Ahora ¿¡Que hago!?

Actualización con silentUpgrade

Y cuando el mundo se cierra y parece todo perdido, Sugar CRM proporciona una solución alterna para actualizar. Desde la versión 6.2 existe silentUpgrade, el cual es una herramienta para evitar algunas limitaciones con las que se puede topar uno al tratar de realizar una actualización con la interfaz gráfica, por ejemplo el limite de carga de archivos de php, permisos de escritura, tiempos de espera limite.
Primero descargamos el paquete de la pagina de Sugar CRM que corresponde con la versión que tenemos y hacia la que vamos a actualizar, de preferencia en una carpeta de fácil acceso. Posteriormente extraemos el contenido del paquete y mediante linea de comandos ejecutamos la siguiente linea:
Con forme a la documentación de Sugar CRM los parametros son los siguientes
    upgradeZipFile
    Ruta física donde se encuentra el archivo Zip de la actualización
    logFile
    Ruta física donde se almacenará el archivo de bitacora de la actualización
    pathToSugarInstance
    Ruta física donde se encuentra la instancia de Sugar CRM a actualizar
    adminUser
    Usuario administrador que esta realizando la actualización
Aqui me encuentro con un pequeño problema, la versión vigente es 6.4.2 y no existe paquete para realizar actualización de la versión 6.2.x a la versión 6.4.2, apenas hace unos dias habia descargado la actualización SugarCE-6.2.x-to-6.4.0.zip y ahora no aparece, con lo cual realizaríamos una actualización escalando primero a la versión 6.4.0, para posteriormente realizar una actualización a la versión 6.4.2.
Por lo tanto el comando para la actualización quedaría de la siguiente forma:
Al iniciar la ejecución nos aparecerá un mensaje como el siguiente:
Tal y como indica el mensaje, realmente toma varios minutos en terminar la actualización, al rededor de 20 minutos. Si todo sale bien, aparece el siguiente mensaje:
Y como indica el mensaje, debemos de entrar a Sugar CRM y realizar una reparación para reconstruir las relaciones entre los módulos. Pero como habíamos prometido actualizar a la versión 6.4.2, haríamos los pasos anteriores pero con el paquete SugarCE-6.4.x-to-6.4.2.zip

Listo, ya tenemos actualizado Sugar CRM CE a la versión 6.4.2, primero a revisar que las extensiones de terceros sirvan y posteriormente a disfrutar las mejoras de esta nueva versión

Saludos