Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Perchè mi cancella il db quando Pubblico una nuova revisione?
venerdì 20 giugno 2014 - 23.17
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
VB.NET
|
.NET 4.0
|
SQL Server 2008
.net
Profilo
| Newbie
37
messaggi | Data Invio:
ven 20 giu 2014 - 23:17
Ciao Ragazzi, ho creato una applicazione che ha anche un db, il problema e questo: quando publico una nuova revisione, il contenuto del db precedente non viene copiato nel db della nuova revisione, viene fuori vuoto. Ho provato nella proprietà del db a impostare le voci "copia nella directory di output", e "operazione di compilazione", ma niente da fare. Vi sarei grato se qualcuno mi sa dire quale il problema. Grazie
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
sab 21 giu 2014 - 18:27
>Ciao Ragazzi, ho creato una applicazione che ha anche un db,
ciao
>il problema e questo: quando publico una nuova revisione, il
>contenuto del db precedente non viene copiato nel db della nuova
>revisione, viene fuori vuoto. Ho provato nella proprietà del
>db a impostare le voci "copia nella directory di output", e "operazione
>di compilazione", ma niente da fare. Vi sarei grato se qualcuno
>mi sa dire quale il problema.
In linea di massima il deploy dell'applicazione via visual studio (ma dipende di cosa stiamo parlando) avviene senza applicare lo script "differenza" all'ambiente di produzione.
L'allineamento devi fartelo a manina, o via script da te creato, o con Visual Studio e i suoi progetti di tipo database, o ancora con tool di terze parti creati per la comparazione degli schema e per il deploy.
Prima di tutto però, puoi essere più dettagliato?
Com'è fatto il database? Cosa hai usato per farlo? Come effettui il deploy?
>Grazie
di nulla!
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com
http://mvp.microsoft.com/profiles/Alessandro.Alpi
.net
Profilo
| Newbie
37
messaggi | Data Invio:
sab 21 giu 2014 - 20:02
Grazie a dio che ci siete, ciao alx, già mi ai salvato una volta, perciò grazie in anticipo per rispondermi.
La mia applicazione tra le diverse cose ha un db con una tabella che contiene 33 campi, l'ho fatto seguendo un manuale perciò devo dirti che sono riuscito a crearlo ma
al primo inghippo mi perdo. Il file del db è un ".sdf", il provider di dati .net framework sql server compact 3.5.
In sostanza io mano a mano che concludo qualche modifica nella mia applicazione, modifiche che non centrano niente con il db, salvo e poi per mia sicurezza copio la cartella del
progetto e la rinomino, in modo che se faccio qualche danno posso sempre ritornare a un stadio precedente senza perdere tutto. Ad esempio, ho tre cartelle di salvataggio che si chiamano: salvataggio1.2.1, salvataggio 1.2.2, e salvataggio 1.2.3. Pubblico l'applicazione dalla cartella salvataggio 1.2.1 e riempio il db, poi pubblico l'applicazione dalla cartella 1.2.2 con una revisione in più, procede tutto vene, cioè la nuova installazione mi salva il db, ma se dopo pubblico l'applicazione della cartella 1.2.3 sempre con una revisione progressivamente in più, quando apro l'applicazione il db e vuoto o direi nuovo.
Tutto qui, mi parli di "deploy", "script", "allineamento"... scusa le mie limitazioni ma non ne ho idea cosa siano, non pensavo ci fosse altro da fare una volta creato e collegato il db.
Se gentilmente mi puoi aiutare a riordinare i concetti e capire il mio problema, grazie ancora, spero di essere stato chiaro.
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
ven 27 giu 2014 - 15:49
>Tutto qui, mi parli di "deploy", "script", "allineamento"...
>scusa le mie limitazioni ma non ne ho idea cosa siano, non pensavo
>ci fosse altro da fare una volta creato e collegato il db.
>Se gentilmente mi puoi aiutare a riordinare i concetti e capire
>il mio problema, grazie ancora, spero di essere stato chiaro.
Quando fai il deploy dell'applicazione credo che l'operazione di cancellazione e ricreazione del database sia un'opzione di deploy.
Prova a controllare queste opzioni (le vedi nelle proprietà del progetto) e verificare la presenza di qualche spunta per non ricreare il database.
Sinceramente con sql compact ho lavorato molto poco, ma ogni volta che ho a che fare con i database, il processo di deploy (pubblicazione in ambienti diversi da sviluppo) è un task molto grosso per cui discutere e decidere il processo da seguire in caso di release. Di solito tengo il database sotto source control, il quale poi mi gestisce la pubblicazione di un pacchetto su di una folder, successivamente usata per allineare il database di produzione tramite tool appositi (io uso quelli di red-gate per fare diff e compare).
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com
http://mvp.microsoft.com/profiles/Alessandro.Alpi
.net
Profilo
| Newbie
37
messaggi | Data Invio:
mar 1 lug 2014 - 17:39
Ciao Alx, scusa il ritardo nel rispondere ma ho fatto decide di prove, in pratica l' impostazioni in vb per quanto riguarda il db sembrano giuste, ho verificato che, quando faccio qualche modifica al db, oppure se soltanto apro l'impostazioni d'una query e pur non avendo fatto nessuna modifica chiudo salvando, per il programma è come se fosse un db nuovo.
A quel punto ho due opzioni:
a: Pubblicare l'applicazione con il db nuovo e a quel punto non mi importa i dati dal db precedente
b: Pubblicare l'applicazione senza creare un db, e a quel punto mi utilizza il vecchio db. Ma ha una limitazione, che l'applicazione ha bisogno che ci sia una release installata precedentemente con un db, perchè in questo modo non ti crea nessun db.
Intanto ho risolto copiando il file del vecchio db "clienti.sdf", e importandolo nel nuovo progetto, poi quando pubblico la nuova release mi importa i dati del veccho db, e cosi funziona tutto vene.
Ma comunque ce qualcosa che mi sfugge, perché sicuramente ci sarà un modo per poter fare delle modifiche a un db e che poi, quando lo pubblichi t'importe i dati del vecchio db.
Ho comprato un libro di "sql", spero di trovare le risposte che cerco, ma si ahi qualche suggerimento l'accolgo con piacere, anche qualche link.
Intanto Grazie.
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
ven 4 lug 2014 - 10:24
>Ma comunque ce qualcosa che mi sfugge, perché sicuramente ci
>sarà un modo per poter fare delle modifiche a un db e che poi,
>quando lo pubblichi t'importe i dati del vecchio db.
il deploy è una procedura che necessita giorni e giorni di studio, in base alla realtà in cui sei. Non ci sono strumenti che fanno quello che è standard, ci sono strumenti che ti consentono di fare deploy di strutture e dati, e molti di essi hanno anche la famosa linea di comando che consente di muoverti liberamente e realizzare realtà di integrazione continua e di deploy continuo. Nelle realtà che vedo, spesso c'è questo scenario:
- seguo un'iterazione di sviluppo di x giorni
- scrivo applicazione + db, modifiche, aggiunte, ecc..
- faccio checkin (quando compila
)
- un pacchetto arriva ad un server di build
- parte la build in automatico dei componenti toccati da quanto checkinato
- in automatico partono i test (unit test ad esempio)
- se tutto va bene, in automatico parte una release di deploy su un ambiente
Gli strumenti sono tanti, c'è solo da documentarsi e da capire cosa serve al tuo team di sviluppo.
In generale però, tutte le procedure di deploy standard (quelle fornite con i tipi di progetto di VS) sono ben documentate su MSDN (es:
http://msdn.microsoft.com/en-us/library/aa983326
(VS.80).aspx).
SQL Server, siccome persiste dati, ha bisogno di considerazioni aggiuntive, ma alla peggio, il tutto si può risolvere con script differenza che andrai a lanciare direttamente sulla base dati installata in produzione.
Nei casi di sdf (casi in cui non devi installare un server) la copia del file è più che buona, ma devi fare attenzione a cosa e come portare.
Se ti serve tenere i dati dell'ambiente su cui vai a pubblicare, dovrai, temo, scrivere script per sincronizzare le informazioni.
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com
http://mvp.microsoft.com/profiles/Alessandro.Alpi
.net
Profilo
| Newbie
37
messaggi | Data Invio:
dom 6 lug 2014 - 00:30
Grazie mille, le tue risposte sono state molto utili, per adesso mi serve approfondire su "SDF"' che è il db che sto utilizzando in vb, perciò mi concentrerò su di esso.
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !