Grazie dell'interessamento. Provo a dare qualche dettaglio in più in modo da agevolare l'analisi:
- Effettuato al tempo dump del db col comando pg_dumpall
- Restorato su nuova istanza di Postgres (col vecchio nome)
- Installato CMDBuild creando contestualmente un db nuovo (con un nuovo nome)
A questo punto, semplicemente rinominando il db e riavviando tomcat ottengo di poter usare l'uno o l'altro. Se uso il nuovo tutto ok, se uso il vecchio (che non ha subito alcun intervento manuale a parte il restore) ottengo la lista di patch.
Applicando le patch l'errore esatto in cui incorro è questo:
org.cmdbuild.exception.ORMException: ORM_SQL_PATCH
at org.cmdbuild.exception.ORMException$ORMExceptionType.createException(ORMException.java:59)
at org.cmdbuild.services.PatchManager.applyPatch(PatchManager.java:157)
at org.cmdbuild.services.PatchManager.applyPatchList(PatchManager.java:136)
at org.cmdbuild.servlets.json.Configure.applyPatches(Configure.java:96)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.cmdbuild.servlets.JSONDispatcher.dispatch(JSONDispatcher.java:89)
at org.cmdbuild.servlets.JSONDispatcher.doPost(JSONDispatcher.java:51)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.cmdbuild.filters.AuthFilter.doFilter(AuthFilter.java:54)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.cmdbuild.filters.PatchManagerFilter.doFilter(PatchManagerFilter.java:28)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.cmdbuild.filters.ConfCheckFilter.doFilter(ConfCheckFilter.java:31)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.cmdbuild.filters.TranslationFilter.doFilter(TranslationFilter.java:37)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:875)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
at java.lang.Thread.run(Thread.java:636)
Spero che sia utile all'individuazione di una possibile causa e soluzione
Grazie
Alessandro
Previously Tecnoteca wrote:
Il fatto che, importando in una versione più recente di CMDBuild un database esportato da una versione più vecchia, il sistema tenti di applicare delle patch non è una operazione inutile.
E' anzi una operazione necessaria per aggiornare la struttura del database rispetto ad eventuali meccanismi aggiuntivi previsti dalle nuove implementazioni rilasciate.
Il problema sta semmai nel fatto che applicando le patch venga generato un errore SQL.
Normalmente (cioè su un database dove non siano stati effettuati interventi manuali) questo non succede e non disponendo di ulteriori informazioni è difficile capirne il motivo.
A solo titolo di esempio un intervento manuale che può generare quel problema è la creazione di viste, che per come funziona PostgreSQL potrebbero impedire al "patch manager" di CMDBuild eventuali modifiche alla struttura delle tabelle coinvolte.
Fabio