CMDBuild Forum

Eliminazione

Salve, sto testando CMDbuild per capirne le potenzialità. Facendo delle prove mi sono accorto di errori e ho necessità di cancellare delle classi e dei domini già creati. Anch'io come altri all'interno del forum, segnalo messaggi del tipo: "Cannot delete a domain with references associated" oppure "Cannot delete a class that has a domain".

Sebbene ci sia una spiegazione a questi errori, dovuta al fatto che CMdbuild tiene lo storico e cancella logicamente, ritengo che questa sia una forte limitazione e non una feature. A cosa serve tenere lo storico di un qualcosa che è stato cancellato se questo dato non può essere riutilizzato ed è diventato un constraint per le future operazioni.

Dal mio punto di vista ha senso mantenere lo storico di un oggetto se si fa un utilizzo di questa informazione ad esempio all'interno di un report, ma se si ha necessità di cancellare i dati perchè non si vogliono più utilizzare o perchè sono ne è stata fatta una errata definizione è necessario avere la possibilità di cancellarli.

Occorrerebbe una procedura per la cancellazione che parta dall'eliminazione delle relazioni fino all'eliminazione degli oggetti singoli liberi da vincoli.

Allo stato attuale avendo fatto una prova con solo tre classi se volessi resettare il DB per ricominciare non avrei altri strumenti a parte  reinstallare tutto

La distinzione fra feature e limitazione è ovviamente soggettiva.

Il versioning completo dei dati è però uno dei principali motivi per cui CMDBuild è stato scelto ed è apprezzato da moltissimi ed importanti utilizzatori in tutto il mondo, per cui non consideriamo sicuramente l'ipotesi di escludere quella funzionalità.

I motivi sono abbastanza evidenti, e vanno dalla possibilità di sapere chi e quando ha eseguito una cancellazione non autorizzata, alla possibilità in casi estremi di ripristinare da SQL situazioni derivanti da operazioni errate, alla possibilità di stampare situazioni inventariali o addirittura fatture di servizi per periodi già conclusi, alla produzione di statistiche su periodi precedenti, ecc.

I post sul forum non possono quindi essere considerati relativi a "errori per i quali c'è una spiegazione" ma si tratta piuttosto, come indicato, di una precisa ed importante scelta architetturale.

Quello che possiamo suggerire, se c'è la necessità di ripartire con il DB vuoto, è di eliminare il DB corrente da Posgres e modificare manualmente il file di configurazione "database.conf" (in WEB-INF/conf) commentando le tre righe contenute. A quel punto al primo accesso all'applicazione partirà in automatico il sistema di setup e sarà possibile richiedere la creazione di un nuovo DB vuoto.

CMDBuild Team