Menu

Problema con BD al migrar a Libreplan 1.2

2012-01-19
2012-11-26
  • Nobody/Anonymous

    Hola:

    Actualmente tengo un entorno de prueba previo a la puesta en producción con Navalplan formado por 2 servidores, para que 2 compañías puedan hacerse subcontratas y trabajar colaborativamente.

    En una de las instalaciones he actualizado sin problemas a Libreplan, utilizando el paquete de ayuda a la migración para Debian. Esta instalación de Navalplan apenas tiene unos pocos usuarios y unos proyectos de prueba.

    En el otro servidor, Navalplan tiene varios usuarios con proyectos reales, imputación de horas trabajadas, y en general información que no me gustaría perder en la migración. De momento no he conseguido migrar a LIbreplan 1.2, ya que tras migrar la base de datos, la aplicación no arranca debido a algún tipo de incompatibilidad con la base de datos. He probado con el paquete de actualización para Debian, y tras fallar, he probado por el método manual de importar un backup, aplicar el script de actualización, e igualmente no consigo arrancar la aplicación con la base de datos migrada.

    Agradecería alguna sugerencia al respecto.

    Gracias de antemano,
    Un saludo.

     
  • Manuel Rego Casasnovas

    Hola,

    entiendo que para el procedimiento manual seguiste las instrucciones que se explican en el wiki: http://wiki.libreplan.org/twiki/bin/view/LibrePlan/HowToMigrateNavalPlanToLibrePlan

    Un par de preguntas a ver si podemos detectar que está pasando:
    1) Desde que versión de NavalPlan estás actualizando
    2) A que versión de LibrePlan estás actualizando
    3) Que scripts de actualización ejecutaste sobre la BD
    4) Hubo algún error al aplicar los scripts de actualización
    5) Cual es el log de Tomcat cuando arrancas la aplicación después de haber hecho el cambio en la BD

    A partir de esa información podremos intentar averiguar que pudo salir mal para tratar de corregirlo.

    Un saludo,
       Rego

     
  • Nobody/Anonymous

    Hola:
    Sí, he seguido las instrucciones de la actualización manual, y también he probado con el paquede deb de actualización.

    La versión original es navalplan 1.1.3 y pretendo actualizar a libreplan 1.2.0

    Durante el traspaso por cualquiera de los 2 métodos no he tenido ningún tipo de error, parece correcto.

    Os incluyo un trozo de log, a ver si sirve de ayuda.

    ERROR  [ContainerBackgroundProcessor[StandardEngine]] org.springframework.web.context.ContextLoader  - Context initialization failed
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor#0' defined in URL [j
    ar:file:/var/lib/tomcat6/webapps/libreplan/WEB-INF/lib/libreplan-business-1.2.0.jar!/libreplan-business-spring-config.xml]: Initialization of bean failed; nested exception is org.springfra
    mework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in URL [jar:file:/var/lib/tomcat6/webapps/libreplan/WEB-INF/lib/libreplan-business-1.2.0.
    jar!/libreplan-business-spring-config.xml]: Cannot resolve reference to bean 'dataSource' while setting bean property 'dataSource'; nested exception is org.springframework.beans.factory.Be
    anCreationException: Error creating bean with name 'dataSource' defined in URL [jar:file:/var/lib/tomcat6/webapps/libreplan/WEB-INF/lib/libreplan-business-1.2.0.jar!/libreplan-business-spr
    ing-config.xml]: Invocation of init method failed; nested exception is javax.naming.NameNotFoundException: Name libreplan-ds is not bound in this Context
            at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:480)
            at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
            at java.security.AccessController.doPrivileged(Native Method)
            at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
            at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
            at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
            at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
            at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
            at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
            at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:880)
            at org.springframework.context.support.AbstractApplicationContext.registerBeanPostProcessors(AbstractApplicationContext.java:596)
            at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:365)
            at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255)
            at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199)
            at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45)
            at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4135)
            at org.apache.catalina.core.StandardContext.start(StandardContext.java:4630)
            at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
            at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
            at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:546)
            at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:905)
            at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:740)
            at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:500)
            at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1345)
            at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:303)
            at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
            at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1337)
            at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1601)
            at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1610)
            at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1590)
            at java.lang.Thread.run(Thread.java:636)
    Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in URL [jar:file:/var/lib/tomcat6/webapps/libreplan/WEB-INF/lib/l
    ibreplan-business-1.2.0.jar!/libreplan-business-spring-config.xml]: Cannot resolve reference to bean 'dataSource' while setting bean property 'dataSource'; nested exception is org.springfr
    amework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in URL [jar:file:/var/lib/tomcat6/webapps/libreplan/WEB-INF/lib/libreplan-business-1.2.0.jar
    !/libreplan-business-spring-config.xml]: Invocation of init method failed; nested exception is javax.naming.NameNotFoundException: Name libreplan-ds is not bound in this Context
            at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:275)
            at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:104)
            at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1245)

            at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473)
            … 30 more
    Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in URL : Invocation of init method failed; nested exception is javax.naming.NameNotFoundException: Name libreplan-ds is not bound in this Context
            at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1338)

    Gracias por vuestra atención.

    Un saludo.

     
  • Manuel Rego Casasnovas

    Hola,

    leyendo el log creo que puede deberse al cambio en el nombre del datasource, que antes era "navalplanner-ds" y ahora es "libreplan-ds"

    Lo digo por lo que veo en la siguiente línea:

    Invocation of init method failed; nested exception is javax.naming.NameNotFoundException: Name libreplan-ds is not bound in this Context

    Esto no significaría que hubo problemas en la migración de la base de datos, sino que no es capaz de conectarse a la misma ya que no encuentra la definición del datasource que es donde se especifica como conectarse.

    Revisa que el datasource se llame "libreplan-ds" en los ficheros de configuración del Tomcat:

    • /etc/tomcat6/Catalina/localhost/libreplan.xml (o como sea en tú caso)

    • /etc/tomcat6/context.xml (si aún estás usando el método anterior)

    Espero que con esto se solucione el problema.

    Un saludo,
       Rego

     
  • Nobody/Anonymous

    Hola de nuevo:

    El datasource está creado correctamente como libreplan-ds en mi caso (el valor por defecto).

    Si instalo Libreplan de cero, con la bd vacía entonces funciona correctamente, el problema viene al migrar el contenido de la bd existente, algún dato no le gusta.  En la migración de otra instancia exactamente igual (eran 2 instalaciones iguales en 2 vm clonadas) no hubo ningún problema al tener sólo unos usuarios y un par de proyectos. Si instalo la bd por defecto vacía, entonces se soluciona el problema, pero me interesaba migrar los datos.

    Un saludo.

     
  • Manuel Rego Casasnovas

    Pues el error parece claramente indicar que no se encuentra el datasource "libreplan-ds".

    La verdad es que no entiendo como puede ser de otra cosa. Como prueba podrías hacer un dump de esa BD y ponerla en una máquina donde tengas todo funcionando de forma correcta. Si hay algún problema en la BD debería protestar de nuevo pero no debería decir nada sobre "libreplan-ds".

    No se me ocurre ninguna otra cosa, que pueda estar relacionada.

     
  • Nobody/Anonymous

    Hola:

    El restaurar la bd en otra máquina con libreplan funcional ya lo  he probado y no funciona. En la máquina en cuestión me funciona el libreplan con la bd vacía de instalación limpia, es al restaurar el dump cuando falla. He probado a exportar en texto y en binario y nada, la base de datos se crea correctamente y tiene los datos, por eso pienso que algo del traspaso de mis datos no le gusta a libreplan.

    Un saludo, y muchas gracias por tu atención.

     
  • Manuel Rego Casasnovas

    Y sale exactamente el mismo log en la otra máquina también?

    La verdad es que no sé de que puede ser el tema.

    Siento no haber servido de ayuda :-(

     

Log in to post a comment.