It is currently 9 June 2025, 6:24 Advanced search

Creazione DDL per modifica struttura DB

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

Creazione DDL per modifica struttura DB

Postby poidomani » 19 May 2013, 14:51

c'è una da da modificare con una certa urgenza dato che può creare problemi seri, ed è per questo che sono in ufficio di Domenica.
Se dall'IDE di INDE si chiede di mostrare le modifiche del DB deselezionando l'opzione crea DDL questa viene ugualmente sovrascritta.
Cosa mi è successo? Il progetto puntava ad un DB diverso da quello che avevo utilizzato per creare la DDL.
Ho voluto rivedere alcune differenze togliendo la spunta a CREA DDL, poi ho premuto su mostra differenze, ho controllato le prime righe e poi ho chiuso. Così la pubblicazione notturna mi ha rovinato parte della struttura del DB.
Sabato per scrupolo ho voluto collegarmi al sito per fare un controllo veloce e ho scoperto che c'erano dei problemi di cui non trovavo la spiegazione. Bisognerebbe sistemarlo al più presto.
Fra l'altro crea il ddl.bak sbagliato e cioè uguale la nuovo e non al precedente.
Last edited by poidomani on 20 May 2013, 10:28, edited 1 time in total.
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: Creazione DDL per modifica struttura DB

Postby lucabaldini » 20 May 2013, 12:35

La pressione del bottone "Mostra differenze" nella videata di build del database causa l'apertura di una nuova videata che mostra tutte le differenze e permette al programmatore di modificare manualmente il file DDL. La videata, all'apertura, ricrea il file DDL e ne fa una copia con estensione .bak (praticamente il file .bak è l'originale ricreato da Instant Developer, mentre il DDL è quello che esce dalla videata delle differenze).

Il fatto di averlo aperto su un DB non allineato ha avuto l'effetto che segnali, ovvero quello di sovrascrivere il file DDL.

Il flag "Crea DDL" che indichi tu non riguarda tale videata. Tale flag, infatti, indica ad Instant Developer che PRIMA di eseguire le modifiche al database deve ri-generarlo di nuovo e riguarda solo l'operazione di build del database.
La videata delle differenze non tiene conto del flag "Crea DDL" mostrato nella videata sotto. Anzi, se lo attivi, poi apri la videata delle differenze e apporti modifiche alle istruzioni SQL, Instant Developer deseleziona automaticamente tale flag poiché se il database viene modificato (ovvero se il DDL viene eseguito) Instant Developer NON DEVE rigenerarlo ma utilizzare quello prodotto dalla videata delle differenze.

Riassumendo la videata delle differenze è pensata per modificare manualmente il file DDL pertanto, all'apertura, tale file viene automaticamente ricreato utilizzando lo stato corrente del database.

Puoi trovare altre informazioni riguardo la videata delle differenze del database nel manuale online da pagina 52.

User avatar
lucabaldini
Pro Gamma
Pro Gamma
 
Posts: 4990
Joined: 1 October 2010, 17:03
Location: Bologna

Re: Creazione DDL per modifica struttura DB

Postby poidomani » 20 May 2013, 13:07

Io penso che qualcosa da modificare ci sia.
Attachments
creaddl.PNG
creaddl.PNG (11.99 KiB) Viewed 7367 times
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: Creazione DDL per modifica struttura DB

Postby lucabaldini » 20 May 2013, 14:14

Il flag "Crea DDL" riguarda l'operazione di modifica del database che viene avviata quando premi OK nella videata di BUILD che hai catturato nell'immagine... non riguarda la videata che mostra le differenze.

Funziona così: se apri la videata che mostra le modifiche il DDL viene riscritto. Il problema ce l'hai solo se hai modificato manualmente il DDL e utilizzi la videata che mostra le differenze, videata che è pensata per modificare manualmente il DDL in maniera controllata. Le due operazioni non possono avvenire insieme...

Se hai modificato il DDL manualmente non devi aprire quella videata altrimenti il DDL viene rigenerato e In.de si prepara per fartelo modificare manualmente in maniera controllata.
User avatar
lucabaldini
Pro Gamma
Pro Gamma
 
Posts: 4990
Joined: 1 October 2010, 17:03
Location: Bologna

Re: Creazione DDL per modifica struttura DB

Postby poidomani » 20 May 2013, 14:40

sì ma è tutto nella stessa videata per cui è naturale aspettarsi che disabilitando "crea ddl" questa non verrà sovrascritta.
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: Creazione DDL per modifica struttura DB

Postby lucabaldini » 20 May 2013, 14:59

Il problema è che la videata delle differenze deve creare un suo DDL per poterlo modificare. Non può utilizzare un DDL modificato all'esterno di Instant Developer dato che non ne può modificare/commentare/cancellare delle parti a meno di doverlo parsare tutto per "ricollegare" le modifiche nel DDL alle modifiche logiche presenti nel progetto.

All'apertura della videata vengono analizzate le modifiche al DB. La videata, per ogni modifica presente, si memorizza in quali righe del file DDL sono presenti le istruzioni SQL associate a quella modifica.

Se il DDL è stato modificato dall'esterno non potrei aprire quella videata dato che lei non sarebbe in grado di accoppiare la modifica alle istruzioni SQL.

Quel flag serve solo durante la fase di esecuzione della build. Se è attivo il DDL viene ricreato prima di eseguire l'operazione di BUILD.

Se facessi come chiedi la videata non potrebbe aprirsi dato che non sarebbe in grado di mostrarti le istruzioni SQL (che sono presenti nel file) relative ad una particolare modifica.
User avatar
lucabaldini
Pro Gamma
Pro Gamma
 
Posts: 4990
Joined: 1 October 2010, 17:03
Location: Bologna

Re: Creazione DDL per modifica struttura DB

Postby poidomani » 20 May 2013, 15:01

ho capito il concetto. Vedrò di ricordarmi di non premerlo su una DDL modificata manualmente.
Ciao, grazie
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: Creazione DDL per modifica struttura DB

Postby r.bianco » 20 May 2013, 15:41

Scusate se mi intrometto ma interessa anche a noi:
propongo che, prima di attivare il mostra differenze, InDe segnali che modificherà il DDL e che chieda conferma prima di proseguire
only work and no play makes jack a dull boy
r.bianco
 
Posts: 4979
Joined: 8 November 2010, 16:46

Re: Creazione DDL per modifica struttura DB

Postby a.rughi » 21 May 2013, 13:12

concordo anch'io che la modifica della DDL, senza il check "create DDL" selezionato, non debba essere eseguita o almeno notificato all'utente in modo da avere un alert sicuramente comodo
a.rughi
 
Posts: 72
Joined: 28 November 2010, 14:19

Re: Creazione DDL per modifica struttura DB

Postby lucabaldini » 27 May 2013, 7:36

Ho creato l'attività NPQ00824 per tenere conto di questa conversazione. Quando verrà valutata, potrete seguirne l'andamento con Instant Developer Roadmap.
User avatar
lucabaldini
Pro Gamma
Pro Gamma
 
Posts: 4990
Joined: 1 October 2010, 17:03
Location: Bologna


Return to Proposte di modifica

Who is online

Users browsing this forum: No registered users and 12 guests