cancel
Showing results for 
Search instead for 
Did you mean: 

Migración de la bbdd entre alfresco 2.x a 3.x

lateralus
Champ in-the-making
Champ in-the-making
Buenas gente, sigo por estos lares buscando información acerca de cómo lograr una migración de un alfresco 2.1,  a un 3.1.
Os comento por partes, la migración completa con los .acp la hemos descartado, porque por todos sitios nos topamos con información en la que dicen que de una versión 2.x a una 3.x es totalmente NO RECOMENDABLE.
Con lo cual nos queda la opción de la migración de la base de datos y del repositorio físico de los documentos “alf_data”.
Hasta ahora todo parece sencillo, hacemos una exportación de datos de la bbdd del alfresco 2.1 (Oracle 10g) a la bbdd del alfresco 3.1 (Oracle 10g).
Esta operación la realizamos con un gestor, en este caso TOAD, y su import/export utility.
Bien, ahora es cuando viene el problema, os comento:
Alfresco 3.1, su bbdd tiene más tablas que la versión 2.1, y aparte de estas nuevas tablas, en las tablas que coinciden, la versión 3.1 tiene nuevos campos. Problema, estos nuevos campos suelen  ser NOT NULL. Al realizar la importación de datos, estos campos se quedan vacíos,  y es cuando falla el proceso de importación. Tampoco podemos poner a lo loco datos sin sentido en esos campos. Algunos se pueden sacar con que lo rellenamos y tal, pero hay otros que no sabes porque se rellenan con ese número,  letra, dato específico, aparte de que esta opción de meter los datos “a pelo” puede ser monstruoso para un repositorio de 50 gb por ejemplo, imaginaros la bbdd que tendrá…

A alguien se le ocurre alguna idea, o cómo solucionaron esto, si no les dio ningún problema, o incluso alguna forma mejor de hacer la importación y exportación de datos ¿? No se, alguna idea, porque  la teoría parece muy sencilla, pero luego la practica…
Gracias de antemano.
10 REPLIES 10

amg
Champ in-the-making
Champ in-the-making
Hola Lateralus,

Estoy buscando información, como tú, para cambiar de una 2.2 a 3.1.
Encontraste la solución? Si veo algo, te lo comentaré.

Muchas gracias y un saludo

lateralus
Champ in-the-making
Champ in-the-making
No, por ahora nada.
Estamos haciendo un programilla para ver si podemos pasar los datos posibles de la bbdd de la 2 a la 3, pero dejamos un poco la cosa parada por otros lios. Lo retornaremos estos dias y ya contaré si funciona.
Saludos!

j4v19
Champ in-the-making
Champ in-the-making
Buenas!

Yo tengo el mismo problema, pero estoy intentando migrar una BBDD de alfresco 2.2 a 3.4, ¿encontrasteis alguna solución?

Saludos

cristinamr
World-Class Innovator
World-Class Innovator
Buenas j4v19.

Uhmmm ¿sigues esta guía?

Es decir, si vas desde una 2.2 por ejemplo, hasta una 3.2 deberías subir la 2.2.0 a una 2.2.5 y de ahí directamente a una 3.2 tal y como especifica en la wiki Smiley Wink

Un saludo.
--
VenziaIT: helping companies since 2005! Our ECM products: AQuA & Seidoc

j4v19
Champ in-the-making
Champ in-the-making
Yes Cristina…

Al final ya conseguí esto.
He migrado de una 2.2 a una 3.4
También lo he conseguido de una 2.2 a una 3.2

Pero ahora lo estoy intentando desde una 2.2 ha una 3.3 y me está dando un error de calendario.

Os lo muestro aquí, por si os ha salido alguna vez.

Otra duda tengo, es que si importas/exportas mediante ACP los índices (uuid) se mantendrán o se crearán nuevos?
Si lo haces con la interfaz de alfresco creo que te los genera nuevos, pero "creo" que hay otra forma con consola que tiene la opción de no modificarlos, me equipoco?



Pd: Adjunto el error del calendario…

10:02:23,640 ERROR [org.alfresco.repo.admin.patch.PatchExecuter] 10170001 org.springframework.dao.DataIntegrityViolationException: Cannot update namespace as it doesn't exist: com.infoaxon.alfresco.calendar
   at org.alfresco.repo.domain.qname.AbstractQNameDAOImpl.updateNamespace(AbstractQNameDAOImpl.java:144)
   at org.alfresco.repo.admin.patch.impl.CalendarModelUriPatch.applyInternal(CalendarModelUriPatch.java:73)
   at org.alfresco.repo.admin.patch.AbstractPatch$1$1.execute(AbstractPatch.java:416)
   at org.alfresco.repo.admin.patch.AbstractPatch$1$1.execute(AbstractPatch.java:410)
   at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:321)
   at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:228)
   at org.alfresco.repo.admin.patch.AbstractPatch$1.doWork(AbstractPatch.java:442)
   at org.alfresco.repo.admin.patch.AbstractPatch$1.doWork(AbstractPatch.java:406)
   at org.alfresco.repo.security.authentication.AuthenticationUtil.runAs(AuthenticationUtil.java:508)
   at org.alfresco.repo.admin.patch.AbstractPatch.apply(AbstractPatch.java:446)
   at org.alfresco.repo.admin.patch.PatchServiceImpl.applyPatch(PatchServiceImpl.java:297)
   at org.alfresco.repo.admin.patch.PatchServiceImpl.access$200(PatchServiceImpl.java:50)
   at org.alfresco.repo.admin.patch.PatchServiceImpl$2.execute(PatchServiceImpl.java:226)
   at org.alfresco.repo.admin.patch.PatchServiceImpl$2.execute(PatchServiceImpl.java:224)
   at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:321)
   at org.alfresco.repo.admin.patch.PatchServiceImpl.applyPatchAndDependencies(PatchServiceImpl.java:229)
   at org.alfresco.repo.admin.patch.PatchServiceImpl.applyOutstandingPatches(PatchServiceImpl.java:163)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:585)
   at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
   at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
   at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
   at $Proxy97.applyOutstandingPatches(Unknown Source)
   at org.alfresco.repo.admin.patch.PatchExecuter.applyOutstandingPatches(PatchExecuter.java:83)
   at org.alfresco.repo.admin.patch.PatchExecuter.onBootstrap(PatchExecuter.java:126)
   at org.springframework.extensions.surf.util.AbstractLifecycleBean.onApplicationEvent(AbstractLifecycleBean.java:56)
   at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:97)
   at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:294)
   at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:858)
   at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:419)
   at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:261)
   at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:192)
   at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
   at org.alfresco.web.app.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:63)
   at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3843)
   at org.apache.catalina.core.StandardContext.start(StandardContext.java:4342)
   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:525)
   at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:627)
   at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:553)
   at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:488)
   at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149)
   at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
   at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
   at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
   at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
   at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
   at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
   at org.apache.catalina.core.StandardService.start(StandardService.java:516)
   at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
   at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:585)
   at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
   at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)

10:02:24,234 INFO  [org.alfresco.repo.admin.patch.PatchExecuter]    Applying patch 'patch.calendarNamespaceUri' (Update the Calendar model namespace URI and reindex all calendar objects.).
10:02:24,234 ERROR [org.alfresco.repo.admin.patch.PatchExecuter] 10170002 org.springframework.dao.DataIntegrityViolationException: Cannot update namespace as it doesn't exist: com.infoaxon.alfresco.calendar
   at org.alfresco.repo.domain.qname.AbstractQNameDAOImpl.updateNamespace(AbstractQNameDAOImpl.java:144)
   at org.alfresco.repo.admin.patch.impl.CalendarModelUriPatch.applyInternal(CalendarModelUriPatch.java:73)
   at org.alfresco.repo.admin.patch.AbstractPatch$1$1.execute(AbstractPatch.java:416)
   at org.alfresco.repo.admin.patch.AbstractPatch$1$1.execute(AbstractPatch.java:410)
   at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:321)
   at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:228)
   at org.alfresco.repo.admin.patch.AbstractPatch$1.doWork(AbstractPatch.java:442)
   at org.alfresco.repo.admin.patch.AbstractPatch$1.doWork(AbstractPatch.java:406)
   at org.alfresco.repo.security.authentication.AuthenticationUtil.runAs(AuthenticationUtil.java:508)
   at org.alfresco.repo.admin.patch.AbstractPatch.apply(AbstractPatch.java:446)
   at org.alfresco.repo.admin.patch.PatchServiceImpl.applyPatch(PatchServiceImpl.java:297)
   at org.alfresco.repo.admin.patch.PatchServiceImpl.access$200(PatchServiceImpl.java:50)
   at org.alfresco.repo.admin.patch.PatchServiceImpl$2.execute(PatchServiceImpl.java:226)
   at org.alfresco.repo.admin.patch.PatchServiceImpl$2.execute(PatchServiceImpl.java:224)
   at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:321)
   at org.alfresco.repo.admin.patch.PatchServiceImpl.applyPatchAndDependencies(PatchServiceImpl.java:229)
   at org.alfresco.repo.admin.patch.PatchServiceImpl.applyOutstandingPatches(PatchServiceImpl.java:163)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:585)
   at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
   at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
   at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
   at $Proxy97.applyOutstandingPatches(Unknown Source)
   at org.alfresco.repo.admin.patch.PatchExecuter.applyOutstandingPatches(PatchExecuter.java:83)
   at org.alfresco.repo.admin.patch.PatchExecuter.onBootstrap(PatchExecuter.java:126)
   at org.springframework.extensions.surf.util.AbstractLifecycleBean.onApplicationEvent(AbstractLifecycleBean.java:56)
   at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:97)
   at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:294)
   at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:858)
   at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:419)
   at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:261)
   at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:192)
   at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
   at org.alfresco.web.app.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:63)
   at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3843)
   at org.apache.catalina.core.StandardContext.start(StandardContext.java:4342)
   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:525)
   at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:627)
   at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:553)
   at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:488)
   at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149)
   at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
   at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
   at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
   at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
   at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
   at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
   at org.apache.catalina.core.StandardService.start(StandardService.java:516)
   at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
   at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:585)
   at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
   at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)



He introducido en "calendarModel.xml" el namespace    <namespace uri="com.infoaxon.alfresco.calendar" prefix="ia"/>
en lugar de <namespace uri="http://www.alfresco.org/model/calendar" prefix="ia"/>  pero el error sigue siendo el mismo.

Saludos

cristinamr
World-Class Innovator
World-Class Innovator
¿Teníais un modelo de datos personalizado?

Ten en cuenta que si desde la versión "base" tienes personalizaciones, esas personalización deberás meterlas en el alfresco al que quieras migrar, sino te dará problemas.
--
VenziaIT: helping companies since 2005! Our ECM products: AQuA & Seidoc

j4v19
Champ in-the-making
Champ in-the-making
Buenas, sigo teniendo la misma duda sobre loa uuid:

Tengo que importar/exportar datos mediante ACP, pero los índices (uuid) se mantendrán o se crearán nuevos?
Si lo haces con la interfaz de alfresco creo que te los genera nuevos, pero "creo" que hay otra forma con consola que tiene la opción de no modificarlos, me equipoco?
¿Cómo puedo acceder a la consola de alfresco?

Saludos

cristinamr
World-Class Innovator
World-Class Innovator
Creo recordar que cuando haces un ACP había un cuadradito en el webclient donde te daba la opción o conservar la misma uuid.

Un saludo.
--
VenziaIT: helping companies since 2005! Our ECM products: AQuA & Seidoc

j4v19
Champ in-the-making
Champ in-the-making
Sorry, pero a mí no me aparece ese cuadradito ni al importar ni al exportar,
simplemente me permite:
   
Nombre de paquete:      …..
Destino:      …..
Pulse aquí para seleccionar el destino
Exportar desde:    
   Espacio actual
     -  Incluir hijos
     -  Incluir este espacio
   Ejecutar exportación en 2º plano

¿Alguna solución?

Saludos