It is currently 7 June 2025, 22:32 Advanced search

IDManager permette di effettuare il deploy

Questo forum è nato con lo scopo di raccogliere le proposte di modifica di Instant Developer e discuterne insieme.

IDManager permette di effettuare il deploy

Postby poidomani » 16 February 2011, 9:35

Sul nostro server abbiamo un DB per ogni utente, la struttura è sempre la stessa, quindi per noi il demploy consiste in
- aggiornamento dell'applicazione: 10 minuti, forse meno
- aggiornamento di 50 DB, che aumentano continuamente, direttamente da INDE, quindi un sacco di tempo.
Per noi il deploy con un click è realizzabile solo se è possibile fornire un elenco di DB da aggiornare.
Non se anche altri hanno il nostro problema
Ing. Giovanni Poidomani - freelance
saper ascoltare significa possedere, oltre al proprio, il cervello degli altri. (Leonardo da Vinci)
poidomani
 
Posts: 3310
Joined: 4 November 2010, 15:07
Location: Bologna

Re: IDManager permette di effettuare il deploy

Postby g.lanzi » 24 February 2011, 21:19

Tutti i database dell'applicazione vengono aggiornati dal manager, quando fai il deploy di un'applicazione puoi fare tutto quello che serve per il deploy di una nuova versione.

Ma hai un'applicazione che usa 50 database oppure 50 è il numero totale dei database usati da più applicazioni?
Mi puoi spiegare nel dettaglio la tua necessità?
Giuseppe Lanzi
Director of Support services
Pro Gamma S.p.A.
User avatar
g.lanzi
Pro Gamma
Pro Gamma
 
Posts: 3504
Joined: 29 September 2010, 10:24
Location: Bologna

Re: IDManager permette di effettuare il deploy

Postby poidomani » 25 February 2011, 7:20

dunque noi abbiamo 50 clienti ognuno dei quali ha il suo DB, per essere più chiari possibile, l'untente Pastificio Rossi ha un suo DB RossiDB con la struttura prevista nel progetto a nome Northwind, poi l'azienda di conservazione Bianchi ha il suo DB BianchiDB sempre con la struttura Northwind e così via. Quindi se nel progetto io punto su RossiDB e faccio il deploy mi verrà aggiornato, da quel che ho capito, SOLO RossiDB e gli altri 49 dovrò aggiornarmeli cambiando la stringa di connessione e premendo F5. La nostra esigenza è di aggiornare tutti i DB con un UNICO deploy, fornendo un elenco di stringhe di connessione. Nell'applicazione poi abbiamo più di un DB. C'è un DB principale e poi un paio di DB comuni.
Ing. Giovanni Poidomani - freelance
saper ascoltare significa possedere, oltre al proprio, il cervello degli altri. (Leonardo da Vinci)
poidomani
 
Posts: 3310
Joined: 4 November 2010, 15:07
Location: Bologna

Re: IDManager permette di effettuare il deploy

Postby lucabaldini » 8 March 2011, 18:51

Spiego come funziona l'IDManager.

Supponiamo che la tua applicazione web (contenuta nel progetto In.de), utilizzi 3 database: DB1, DB2 e DB3. Poi, a run-time cambiando la stringa di connessione, la tua applicazione utilizza 35 database: 15 sono repliche del DB1 contenuto nel progetto, 12 repliche del DB2 e 8 repliche del DB3.
Ora quando aggiorni la tua applicazione web, devi aggiornare tutti i 35 database!

Il manager affronta il problema in questo modo. Dentro al manager ogni applicazione web può contenere un elenco di database. Ogni database ha una propria chiave primaria che permette di distinguerlo dagli altri e anche una proprietà chiamata "Guid In.de" che è appunto il GUID del database contenuto nel progetto (DB1, DB2 e DB3 nel tuo caso).
Quindi, per configurare correttamente il manager, occorre creare 35 database dentro all'applicazione: 15 con connection string differenti ma aventi tutti lo stesso GUID del DB1, 12 con connection string differenti ma con il GUID In.de del DB2 e 8 con il GUID In.de del DB3.

Quando pubblichi In.de contatta il manager e lo informa che la tua applicazione utilizza 3 database: DB1, DB2 e DB3. Il manager analizza la lista dei database dell'applicazione e ne fa una "distinct" raggruppandoli per GUID In.de. Per ogni "gruppo" prende il primo e calcola le differenze tra il corrispondente DB dentro al progetto e il DB fisico. Quindi, In.de ottiene 3 script di modifica del DB: uno per i database di tipo DB1, uno per i database di tipo DB2 e uno per i database di tipo DB3. Quando, poi, viene avviata la pubblicazione, il manager cicla su tutti 35 i database. Per ognuno di questi esegue lo script di modifica giusto.

Quindi la risposta è sì, è possibile utilizzando In.de aggiornare tutti e 35 i database della mia applicazione anche se dentro In.de ne ho solo 3. Tutto questo funziona, ovviamente, se tutti i "gruppi" di database sono effettivamente nello stesso stato... se i db dello stesso gruppo si trovano in stati differenti la pubblicazione potrebbe fallire.
User avatar
lucabaldini
Pro Gamma
Pro Gamma
 
Posts: 4990
Joined: 1 October 2010, 17:03
Location: Bologna

Re: IDManager permette di effettuare il deploy

Postby poidomani » 8 March 2011, 21:12

perfetto è quello che serve a noi (e penso a molti altri), solo mi chiedo, quando avrò duecento DB vedrò l'intera lista nel progetto? Perchè in questo caso, se la lista è in cima dovrò prendere una navetta per raggiungere l'inizio del progetto. Se invece fosse in fondo (oppure all'interno di un folder) non ci sarebbero problemi.
Ciao
Ing. Giovanni Poidomani - freelance
saper ascoltare significa possedere, oltre al proprio, il cervello degli altri. (Leonardo da Vinci)
poidomani
 
Posts: 3310
Joined: 4 November 2010, 15:07
Location: Bologna

Re: IDManager permette di effettuare il deploy

Postby lucabaldini » 8 March 2011, 21:18

No, non vedi tutta la lista nel progetto... Dentro al progetto In.de tu continui a vedere solo ed esclusivamente i 3 DB dell'esempio sopra: DB1, DB2 e DB3.
Dentro al manager, invece, hai un pannello che elenca tutti i duecento DB... ed è un pannello in una applicazione web contenente 200 righe... qualcosa di normale in una applicazione web. Lì vedi tutti i db e puoi configurarne singolarmente le stringhe di connessione.
User avatar
lucabaldini
Pro Gamma
Pro Gamma
 
Posts: 4990
Joined: 1 October 2010, 17:03
Location: Bologna

Re: IDManager permette di effettuare il deploy

Postby poidomani » 9 March 2011, 13:56

perfetto!!!!!!!!!!
Ing. Giovanni Poidomani - freelance
saper ascoltare significa possedere, oltre al proprio, il cervello degli altri. (Leonardo da Vinci)
poidomani
 
Posts: 3310
Joined: 4 November 2010, 15:07
Location: Bologna


Return to Proposte di modifica

Who is online

Users browsing this forum: No registered users and 6 guests