Ricerca in FOLBlog

[SdSM] La Chiave

 Scritto da alle 06:27 del 15/09/2011  Aggiungi commenti
Set 152011
 
closeQuesto articolo è stato pubblicato 6 anni 1 mese 5 giorni giorni fa quindi alcuni contenuti o informazioni presenti in esso potrebbero non essere più validi. Questo sito non è responsabile per eventuali errori causati da questo problema.

Chiave DB

No, rimettetevi i pantaloni che non stiamo parlando di Tinto Brass.

Alura, un po’ di tempo fa’ $noicifacciamogliaffarituoi ha messo in piedi il solito sito interdet con CMS incorporato. Roba che oramai e’ piu’ comune del mal di testa che mi provocano. Dopo numerose bestemmie per via delle varie versioni del foxxuto sito che si incatastavano in continuazione e numerosi cicli di aggiorna, prova, riprova, downgrade, riprova, i pinguini si sono finalmente decisi ad accettare il mio suggerimento di mettere in piedi un sistema di testing basato su un singolo server (virtuale) che faccia sia da web server che da database server. Per i test dovrebbe essere piu’ che sufficiente.

Ed infatti dopo un po’ di verifiche e prove, la versione in ‘test’ viene spostata in produzione e sembra funzionare un pelo meglio. Il che significa che invece che inchiodarsi brutalmente e riportare due kili e mezzo di errori ad ogni pagina ne ritorna solo mezzo chilo.

Ma… Ma c’e’ un "ma".

Il "ma" in questione e’ che ci sono certe cose che funzionano in test e poi, una volta spostate in produzione, o non funzionano o danno dei risultati completamente diversi. Il che mi fa pensare che (come al solito) l’ambiente di ‘test’ non e’ proprio uguale a quello di ‘produzione’.

E non sto parlando del fatto che uno dei due ambienti e’ composto da due macchine separate per web e db, ma del fatto che evidentemente l’applicazione e’ diversa tra le due.

Dopo un altro po’ di bestemmie, riesco a convincere i pinguini programmatroti che forse e’ il caso di fare un bel dump del server di produzione e "spalmarlo" sul server di test, cosi’ che si possa fare i test e verificare che i due ambienti rispondano nello stesso modo. Dopo aver fatto la "spalmatura" scopriamo che l’applicazione continua a rispondere in modo diverso. Ok, il problema e’ evidentemnte nei dati del database. A questo punto, CL, membro della premiata ditta $pinguiniprogrammatrotisiamonoi, ha l’illuminazione: quando e’ stata fatta l’installazione della nuova versione dell’applicazione e’ stato anche caricato un database di prova senza prima zappare via quello esistente, il risultato e’ che ci sono dei dati duplicati nel database e questi provocano i problemi.

IO – …momento quajo’… dati duplicati? Nel database?
CL – Si’, sicuramente… Possiamo fare un controllo con un "select questo-e-quello from…"

E la query ritorna 580 righe, mentre (secondo CL) dovrebbe ritornarne solo un terzo.

CL – Ecco il problema, abbiamo dei dati duplicati.
IO – Ma… come cappero si fa’ ad inserire dei dati duplicati in un database? Non dovrebbero esserci delle chiavi primarie e cose cosi’ per evitarlo?
CL – Huh? Chiavi primarie?

Il tono di CL mi fa’ venire i brividi cosi’ faccio un rapido controllo nel db e scopro che… Non ci sono chiavi primarie definite in nessuna tabella!!! E quindi non ci sono FK ne’ altri meccanismi per forzare un minimo di "coerenza logica" dei dati. In effetti e’ possibile inserire qualunque schifezza in questo database. Ed e’ stato fatto.

IO – Ma non sarebbe meglio utilizzare una qualche constraint per evitare questi problemi? Voglio dire, come fate a mantenere la coerenza dei dati?
CL – Ah, ci pensa l’applicazione.

Ossignur… Ed il bello e’ che questa gente usa Oracle! E lo usano come userebbero una merda come MySQLAccess! Non c’e’ limite al peggio (come se non lo sapevo prima).

legenda personaggi


Articoli simili:

  • Facebook
  • Twitter
  • Delicious
  • StumbleUpon
  • Wikio
  • Reddit
  • Technorati
  • Segnalo
  • Live
  • Add to favorites
  • Email
  • RSS

 Lascia un commento

Puoi usare questi tag e attributi HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(richiesto)

(richiesto)

Pinterest
EmailEmail
PrintPrint
%d blogger hanno fatto clic su Mi Piace per questo: