gwtipstricks:idxtipstricks:appuntipostgres

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisione Revisione precedente
Prossima revisione
Revisione precedente
gwtipstricks:idxtipstricks:appuntipostgres [2020/09/11 16:46]
giovanni.bifolchi
gwtipstricks:idxtipstricks:appuntipostgres [2020/09/11 17:03] (versione attuale)
giovanni.bifolchi
Linea 50: Linea 50:
  
  
-===== Modifiche ​su oggetti con dipendenze =====+===== Modifiche ​di oggetti con dipendenze =====
  
 ==== Introduzione ==== ==== Introduzione ====
-Questa funzione permette di velocizzare ​le generose dipendenze ​di PostgreSQL.+Questa funzione permette di velocizzare ​il ripristino ​di oggetti che dipedenvano da altri e bloccavano quindi la modifica della fonte.
  
-Per spiegare meglio "​dipendenze",​ vi pongo un esempio: avete presente quando dovete modificare il data type di un campo in una tabella ma non potete perché questa ha delle viste che dipendono da essa? +Per spiegare meglio ​//"​dipendenze"​//, vi pongo un esempio: avete presente quando dovete modificare il //data type// di un campo in una tabella ma non potete perché questa ha delle viste che dipendono da essa? 
 Oppure, dovete modificare una vista ma non potete perché questa ha altre viste dipendenti. Insomma, credo di aver reso bene l'​idea. Oppure, dovete modificare una vista ma non potete perché questa ha altre viste dipendenti. Insomma, credo di aver reso bene l'​idea.
  
-Senza questa funzione, si dovrebbe fare tutto a mano: salvare lo script della vista, eliminare la vista, modificare il campo e ricreare la vista. ​<​br> ​Diciamo che finché si tratta di una vista il problema non si pone, ma quando, ci sono più di 10 viste dipendenti dalla tabella?+Senza questa funzione, si dovrebbe fare tutto a mano: salvare lo script della vista, eliminare la vista, modificare il campo e ricreare la vista. Diciamo che finché si tratta di una vista il problema non si pone, ma quando, ci sono più di 10 viste dipendenti dalla tabella?
  
 Bene, qui entra in gioco la funzione di cui vi parlavo. Lo script non impedisce a PostgreSQL di generare dipendenze, perché queste sono una funzionalità efficace del software e ci aiutano a mantenere un prodotto funzionante,​ ma aiuta l'​utente a risparmiare tempo nel ricreare tutte le viste (o altre dipendenze) a mano. Bene, qui entra in gioco la funzione di cui vi parlavo. Lo script non impedisce a PostgreSQL di generare dipendenze, perché queste sono una funzionalità efficace del software e ci aiutano a mantenere un prodotto funzionante,​ ma aiuta l'​utente a risparmiare tempo nel ricreare tutte le viste (o altre dipendenze) a mano.
   ​   ​
-Dunque, la funzione che vi consiglio ​oggi salva, con un click, tutti gli script che ricreano le viste (o altre dipendenze) e con un altro le rigenera.+Dunque, la funzione che vi consiglio salva, con un click, tutti gli script che ricreano le viste (o altre dipendenze) e con un altro le rigenera.
 Il tutto senza uscire dall'​interfaccia di Pgadmin, poiché si tratta di una funzione che si crea nel database. Il tutto senza uscire dall'​interfaccia di Pgadmin, poiché si tratta di una funzione che si crea nel database.
  
 ==== Installazione ==== ==== Installazione ====
-Se vi interessa, potete scaricare ​la cartella condivisa ​via mail ed eseguire lo script su Pgadmin, contenuto nel file: ''​Edit_4_gw_save_restore_dependencies_psql.sql''​ + 
-Questo ​non farà altro che creare+=== Requisiti === 
-  * una tabelladove verranno salvate le dipendenze, chiamata: deps_saved_ddl +  * PgAdmin 
-  * una funzione che salva (nella tabella) e cancella (dal database) le dipendenze di uno specifico ​oggetto: deps_save_and_drop_dependencies +  * {{ :​gwtipstricks:​idxtipstricks:​dipendenze_postgresql.zip |}} 
-  * una funzione che ripristina le dipendenze, di uno specifico ​oggetto, ​nel database (prendendole dalla tabella in cui le avete salvate con lo script ​precedente): deps_restore_dependencies+ 
 +Scaricare ​la cartella condivisa ed eseguire lo script su Pgadmin, contenuto nel file: ''​Edit_4_gw_save_restore_dependencies_psql.sql''​ 
 + 
 +Questo ​script genera
 +  * ''​deps_saved_ddl'': ​tabella dove verranno salvate le dipendenze; 
 +  * ''​deps_save_and_drop_dependencies'': ​funzione che salva (nella tabella) e cancella (dal database) le dipendenze di un oggetto ​specificato;​ 
 +  * ''​deps_restore_dependencies'': ​funzione che ripristina le dipendenze ​nel database, di un oggetto ​specificato, prendendole dalla tabella in cui sono state salvate con la funzione ​precedente.
  
 Se vi interessano altre informazioni potete anche leggere il file: ''​ReadMe.txt'',​ che avevo personalmente scritto. Se vi interessano altre informazioni potete anche leggere il file: ''​ReadMe.txt'',​ che avevo personalmente scritto.
Linea 94: Linea 100:
  
 === Possibili Problemi === === Possibili Problemi ===
-Va specificato un possibile problema: la funzione non fa magie, ma riscrive semplicemente gli script che dipendono da un oggetto al posto vostro. +Va specificato un possibile problema: la funzione non fa //magie//, ma riscrive semplicemente gli script che dipendono da un oggetto al posto vostro. 
-Quindi se avete una tabella dove avete un campo character varying e necessitate di trasformarlo in un numeric, state bene attenti che le viste dipendenti non abbiano alcuna: "​where ​b", dove è il campo che volete modificare ( character varying) e un altro campo character varying. Altrimenti, se avete fatto la modifica, dopo aver eseguito la funzione di ripristino delle dipendenze potreste beccarvi l'​errore: ​ERROR: ERRORE: ​ l'​operatore non esiste: numeric = character varying.+Quindi se avete una tabella dove avete un campo character varying e necessitate di trasformarlo in un numeric, state bene attenti che le viste dipendenti non abbiano alcuna: "​where ​Y", dove è il campo che volete modificare (character varying) e un altro campo character varying. Altrimenti, se avete fatto la modifica, dopo aver eseguito la funzione di ripristino delle dipendenze potreste beccarvi l'​errore: ​
  
-C'è comunque ​non modo per risolverlo, basterà entrare nella tabella deps_saved_ddl,​ cercare la riga dove si trova lo script della vista incriminata e modificarla manualmente,​ ossia togliendo quella where o modificandola in modo da farla funzionare. Insomma nulla di impossibile ma fa sempre bene saperlo.+<code sql>​ERROR:​ ERRORE: ​ l'operatore ​non esiste: numeric = character varying</​code>​
  
 +C'è comunque non modo per risolverlo, basterà entrare nella tabella ''​deps_saved_ddl'',​ cercare la riga dove si trova lo script della vista incriminata e modificarla manualmente,​ ossia togliendo quella where o modificandola in modo da farla funzionare. Insomma nulla di impossibile ma fa sempre bene saperlo.
  
  • gwtipstricks/idxtipstricks/appuntipostgres.1599835610.txt.gz
  • Ultima modifica: 2020/09/11 16:46
  • da giovanni.bifolchi