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: