CMDBuild Forum

Upgrade da 0.9 a 1.1 - "Classe Class Non Trovata"

Buongiorno,

a seguito di passaggio in produzione di CMDBuild, sto effettuando la migrazione dalla versione 0.9 alla versione 1.1. Vorrei sapere quali passaggi è necessario effettuare per poter utilizzare il vecchio database.

Cmdbuil1.1 è stato installato su un VM e ha tutti i requisiti necessari, ho provato a far creare un nuovo database e tutto funziona.


Tuttavia quando modifico il file di configurazione per puntare a un vecchio DB si presenta la schermata di installazione delle patch e da questa non riesco ad uscire. Selezionando una patch da installare ricevo l'errore "Classe Class Non Trovata".
Dal file di log si evince che l'applicativo si blocca dopo queste chiamate:

INFO  2009-11-10 15:26:52 [jsonrpc ] Calling url /configure/getpatches
INFO  2009-11-10 15:35:04 [jsonrpc ] Calling url /configure/getpatches

Come posso risolvere?

Grazie e buona giornata.

Mattia Cargiolli


Buon giorno,

il problema che ha riscontrato è dovuto ai cambiamenti subiti dalla struttura del database di CMDBuild dalla versione 0.9 alla versione 1.0 e seguenti.

Con la versione 1.1 è stato introdotto un sistema automatico per l'applicazione delle patch dalla 1.0R3 in poi.

Per le versioni precedenti, purtroppo, è necessario eseguire manualmente degli script SQL.

 

Nella cartella {$CMDBUILD_HOME}/webapp/WEB-INF/sql/base_schema

si trovano 11 script, di questi bisogna eseguire:

 

  • 01_system_functions_base.sql
  • 02_system_functions_class.sql
  • 03_system_functions_attribute.sql
  • 04_system_functions_domain.sql
  • 06_system_views_base.sql
  • 09_system_views_extra.sql
  • 10_system_functions_extra.sql

 

Dopo aver eseguito questi script bisogna spostarsi nella cartella {$CMDBUILD_HOME}/webapp/WEB-INF/sql

ed eseguire in quest'ordine:

 

  • migration_script.sql
  • update1.0R1_to_1.0R2.sql
  • update1.0R2_to_1.0R3.sql

 

A questo punto il db dovrebbe essere un database alla versione 1.0R3 e per rendere le modifiche operative è necessario cancellare il contenuto della cartella "work" di tomcat.

Da questo punto in poi il sistema di aggiornamento automatico dovrebbe essere in grado di aggiornare il database ogni volta che, aggiornando l'applicazione, verranno introdotte modifiche al database.

 

Rimango a disposizione per qualsisi problema.

 

Martino

Buongiorno,

la ringrazio per la risposta chiara e precisa.  Ho eseguito gli script da lei indicati senza errore o problemi.

Tuttavia mi spiace informarla che il problema è stato risolto solo in parte: quando mi collego alla pagina di cmdbuild per avviare l'installazione delle patch, vengono installate le prime 5 e alla 5^ patch (Domain Cardinality Constraints)  l'applicativo restituisce "Errore sql nella patch".

Ho verificato il file di log e posto quelle che ritengo siano entry rilevanti, eventualmente posso postare tutto il log:

 

INFO  2009-11-17 13:10:39 [jsonrpc ] Calling url /configure/applypatches
ERROR 2009-11-17 13:10:39 [sql     ] Failed to apply patch 1.0.3-05
org.postgresql.util.PSQLException: ERROR: relation "idx_map_activityemail_uniqueright" already exists

.

ERROR 2009-11-17 13:10:39 [jsonrpc ] json rpc error
java.lang.reflect.InvocationTargetException

.

DEBUG 2009-11-17 13:10:39 [jsonrpc ] Uncaught exception calling method class org.cmdbuild.servlets.json.Configure.applyPatches
org.cmdbuild.exception.ORMException

.

INFO  2009-11-17 13:10:39 [jsonrpc ] Calling url /configure/getpatches
DEBUG 2009-11-17 13:10:39 [jsonrpc ]     parameter "_dc": 1258456106685

 

Ringrazio in anticipo,

Saluti

Mattia Cargiolli

 

Previously Tecnoteca wrote:

Buon giorno,

il problema che ha riscontrato è dovuto ai cambiamenti subiti dalla struttura del database di CMDBuild dalla versione 0.9 alla versione 1.0 e seguenti.

Con la versione 1.1 è stato introdotto un sistema automatico per l'applicazione delle patch dalla 1.0R3 in poi.

Per le versioni precedenti, purtroppo, è necessario eseguire manualmente degli script SQL.

 

Nella cartella {$CMDBUILD_HOME}/webapp/WEB-INF/sql/base_schema

si trovano 11 script, di questi bisogna eseguire:

 

  • 01_system_functions_base.sql
  • 02_system_functions_class.sql
  • 03_system_functions_attribute.sql
  • 04_system_functions_domain.sql
  • 06_system_views_base.sql
  • 09_system_views_extra.sql
  • 10_system_functions_extra.sql

 

Dopo aver eseguito questi script bisogna spostarsi nella cartella {$CMDBUILD_HOME}/webapp/WEB-INF/sql

ed eseguire in quest'ordine:

 

  • migration_script.sql
  • update1.0R1_to_1.0R2.sql
  • update1.0R2_to_1.0R3.sql

 

A questo punto il db dovrebbe essere un database alla versione 1.0R3 e per rendere le modifiche operative è necessario cancellare il contenuto della cartella "work" di tomcat.

Da questo punto in poi il sistema di aggiornamento automatico dovrebbe essere in grado di aggiornare il database ogni volta che, aggiornando l'applicazione, verranno introdotte modifiche al database.

 

Rimango a disposizione per qualsisi problema.

 

Martino

 

Previously Mattia wrote:

Buongiorno,

la ringrazio per la risposta chiara e precisa.  Ho eseguito gli script da lei indicati senza errore o problemi.

Tuttavia mi spiace informarla che il problema è stato risolto solo in parte: quando mi collego alla pagina di cmdbuild per avviare l'installazione delle patch, vengono installate le prime 5 e alla 5^ patch (Domain Cardinality Constraints)  l'applicativo restituisce "Errore sql nella patch".

Ho verificato il file di log e posto quelle che ritengo siano entry rilevanti, eventualmente posso postare tutto il log:

 

Salve,

ci scusiamo per la pubblicazione tardiva della sua domanda. La procedura di upgrade automatico (Patch Manager) è stata predisposta per aggiornare un database 1.0R3 alla versione attuale (qualunque essa sia). Per questo motivo gli script SQL da eseguire prima degli script di migrazione sono quelli persenti nella cartella {$CMDBUILD_HOME}/webapp/WEB-INF/sql/base_schema sono quelli della versione 1.0R3 e non della 1.1. Allego a questo post gli script della versione 1.0R3, in modo che non debba scaricarsi l'intera release. Come precedentemente specificato da Martino, gli script che vanno eseguiti sul database 0.90 sono solo questi:

  • 01_system_functions_base.sql
  • 02_system_functions_class.sql
  • 03_system_functions_attribute.sql
  • 04_system_functions_domain.sql
  • 06_system_views_base.sql
  • 09_system_views_extra.sql
  • 10_system_functions_extra.sql

 

Paolo

 

 


base_schema_10R3.zip (24.7 KB)