[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [ot di disperazione]Postgre non recupera correttamente il backup



Davide Prina ha scritto:
mox wrote:
Davide Prina ha scritto:

(giusto per capire di cosa parlo www.oratio.it)

per quanto riguarda oratio ... io diffido molto di quei software che non indicano neppure la licenza d'uso chiaramente con cui sono distribuiti ... bisogna andare a cercare per capire.

Sono perfettamente d'accordo che ogni produttore di software libero (fino alla versione 2.x Oratio è sotto GPL) può decidere come distribuirlo (Oratio è distribuito solo dietro richiesta via mail). Capisco che questo possa permettere di avere maggiori clienti paganti i servizi connessi, ma ...

Inoltre, se già non lo sai sul sito trovi questo scritto:
************
La nuova versione 3.0 sarà sempre open source per l'Utente Finale, anche se avrà una licenza diversa dalla GPL. Il codice sarà aperto per l'utilizzatore, e la licenza conterrà l'esplicito vincolo di non farne un uso commerciale.
************

se fossi in te io penserei a scegliermene un altro.
Questi sembrano che si stanno costruendo una base di possibili clienti sfruttando all'inizio la licenza GPL, poi passando ad una licenza che renderà il software non commerciabile (non penso si possa definire ancora neppure opensource, anche se sul li dicono il contrario) ... per poi finire per diventare puramente proprietario.

concordo con tutto, anche con l'ultima parte.
Diciamo che c'è un forum, ma non c'è traffico... e da parte mia è un brutto segno: ho un problema "generico", non ottengo una risposta = sono obbligato a registrarmi. Dal codice, e dal confronto con sql-ledger fatto così al volo, l'impressione è che sql-ledger è un prodotto robusto e ben strutturato, mentre oratio pare fermo alla data del fork da sql-ledger e che le migliorie siano più ridotte a piccoli cambiamenti (purtroppo un po pasticciati). Se avessero continuato la sola localizzazione e personalizzazione di sql-ledger, invece.... Personalmente vorrei passare al sql-ledger, ma nella mia piccolissima ditta (non mia per possesso, ma perchè ci lavoro) la mancanza di un supporto italiano è una cosa demoniaca.... è già stato difficile uscire fuori dall'isola per un possibile supporto, figuriamoci andare in canada!

Io qui ne ho raccolti un po' di gestionali aziendali
http://linguistico.sourceforge.net/wiki/doku.php?id=elenco_di_software_libero#gestionali_aziendali
ringrazio, avevo già fatto un giro su tutti e stamane ne ho ri-fatto un'altro.
c'è anche oratio, ma ora sto meditando di cancellarlo dalla lista.

purtroppo oratio è l'unico che possa essere libero ed utilizzabile in italia: d.d.t., postgres (non mysql), multiutente, codici iva, ecc. Ho avuto quasi una folgorazione davanti a Phasis, poi ho scoperto che non ha raggiunto la versione 1.0 e che manca la multiutenza, sigh :( Un vero peccato! Ed io sono in ritardo di circa 9 mesi con la sostituzione del programma in ditta.... Piuttosto, perchè manca Tiny-Erp? Quando avevo installato la demo ero rimasto, a dir poco, impressionato! Purtroppo non è (almeno era) abbastanza italiano....

5) se provo n volte a fare il restore del db2, il risultato è che ottengo il caricamento di n+2: 3 la prima volta, 4 la seconda, e così via...

questo perché ogni volta inserisci gli stessi dati nel db e poiché non hai nulla che ti garantisca la consistenza dei dati tutto è permesso.

Mi manca _proprio_questo_ dettaglio: se il db è consistente (ma è possibile saperlo in maniera "automatizzata" o è indispensabile una analisi umana?) è sempre possibile recuperare una copia ottenuta con "pg_dump -Fc..." oppure no oppure a seconda del db bisogna ricorrere ad altri sistemi?

per far si che i dati siano consistenti è sufficiente crearsi un'appropriata struttura di chiavi primarie/esterne ... progettando a monte la struttura in maniera appropriata sia per il tipo di dati che dovrà contenere (e questo è quasi sempre fattibile) e con il tipo di operazioni che si devono su di essa eseguire (e questo, nella realtà, è quasi sempre non fattibile ... a meno che sei tu che stai facendo un database per risolvere un tuo problema)

Per quanto riguarda il tuo problema è in realtà facilmente risolvibile.
Tu dici che l'unico problema è che ci sono delle righe duplicate ... allora basta cancellarle con una semplice query.
Effettivamente non ci sono righe duplicate, c'è ridondanza nel carico di dati. Quello che segue, comunque, lo appenderò sopra la testata del letto per farne memoria:

Per fare questo è sufficiente individuare la chiave (o magari anche tutte le colonne) che determinano (o meglio devono determinare) l'univocità di un record.

con un'istruzione del genere puoi trovare tutte le righe duplicate

select <elenco_campi_chiave>
from <nome_tabella>
group by <elenco_campi_chiave>
having count(*) > 1

per effettuare la cancellazione è sufficiente che ne preservi uno, per esempio quello inserito per primo.

delete from <nome_tabella>
where oid in
(
select max(oid)
from <nome_tabella>
group by <elenco_campi_chiave>
having count(*) > 1
)

e mettere tale istruzione in un ciclo che ripete la delete fino a quando non fa più nulla.

ATTENZIONE: ho scritto tutto senza provare ... fai qualche prova per verificare se tutto funziona correttamente.

In ogni caso se il db ti permette di fare queste cose secondo me non è affidabile e quindi è meglio non utilizzarlo ... io pensavo che lo avessi fatto tu.

eh no! Magari ne avessi svuto il tempo.... E che non so cosa utilizzare in alternativa...

Ciao
Davide

Ciao e grazie ancora.



Reply to: