You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: pages/1_10_domande.md
+40-1
Original file line number
Diff line number
Diff line change
@@ -4,4 +4,43 @@ layout: default
4
4
5
5
# Domande?
6
6
7
-
Grazie per l'attenzione! Se avete domande, sono qui per rispondere.
7
+
Grazie per l'attenzione! Se avete domande, sono qui per rispondere.
8
+
9
+
<!--
10
+
Possibili domande:
11
+
12
+
1. Qual è la differenza tra Flyway e Liquibase
13
+
14
+
Flyway e Liquibase sono due popolari strumenti di gestione delle migrazioni del database che aiutano a versionare e gestire le modifiche dello schema del database in modo sicuro e coerente. Entrambi offrono funzionalità simili ma hanno differenze nelle modalità di funzionamento, configurazione e caratteristiche.
15
+
16
+
Flyway
17
+
Caratteristiche principali:
18
+
1. Migrations Based on SQL Scripts: Flyway utilizza principalmente script SQL per definire le migrazioni del database. Può anche supportare migrazioni basate su Java.
19
+
2. Versioning: Ogni migrazione è versionata usando un prefisso numerico (es. V1__Create_table.sql).
20
+
3. Schema History Table: Flyway tiene traccia delle migrazioni eseguite usando una tabella di cronologia (flyway_schema_history).
21
+
4. Semplicità: Flyway è conosciuto per la sua semplicità e facilità d'uso. Non richiede un file di configurazione XML o YAML, ma può essere configurato tramite una semplice API o file di proprietà.
22
+
5. Integrations: Flyway si integra facilmente con build tools (Maven, Gradle) e può essere utilizzato come una libreria standalone.
23
+
6. Support for Multiple Databases: Flyway supporta numerosi database, tra cui MySQL, PostgreSQL, Oracle, SQL Server, H2, e altri.
24
+
25
+
Liquibase
26
+
Caratteristiche principali:
27
+
28
+
1. Changelogs: Liquibase utilizza file di changelog per definire le migrazioni del database. Questi file possono essere scritti in XML, YAML, JSON o SQL.
29
+
2. Flexibility: Liquibase offre una maggiore flessibilità nella definizione delle migrazioni rispetto a Flyway. Le migrazioni possono includere cambiamenti di struttura, dati, chiamate a funzioni e procedure, ecc.
30
+
3. Schema History Table: Liquibase tiene traccia delle migrazioni eseguite utilizzando una tabella di cronologia (DATABASECHANGELOG).
31
+
4. Database Independent: Grazie all'uso dei changelog, le migrazioni possono essere definite in modo indipendente dal database. Liquibase può tradurre questi cambiamenti nel dialetto SQL specifico del database in uso.
32
+
5. Rollback: Liquibase supporta rollback dettagliati delle migrazioni, permettendo di tornare a uno stato precedente del database.
33
+
6. Advanced Features: Liquibase offre funzionalità avanzate come la generazione di changelog differenziali, supporto per refactoring, esecuzione condizionale delle migrazioni, e altro.
34
+
7. Integrations: Come Flyway, Liquibase si integra con build tools e framework (Maven, Gradle, Spring Boot, ecc.).
35
+
36
+
Confronto
37
+
1. Semplicità vs. Flessibilità: Flyway è generalmente più semplice e diretto da usare, particolarmente se preferisci lavorare con script SQL. Liquibase offre una maggiore flessibilità e supporta un'ampia gamma di scenari avanzati.
38
+
2. Formati di definizione: Flyway si concentra sugli script SQL, mentre Liquibase supporta vari formati (XML, YAML, JSON, SQL) che possono essere più adatti per progetti complessi o multi-database.
39
+
3. Rollback: Liquibase offre funzionalità di rollback più avanzate e dettagliate rispetto a Flyway.
40
+
4. Configurazione: Flyway richiede meno configurazione iniziale e può essere configurato con semplici file di proprietà o tramite l'API. Liquibase richiede la definizione di changelog in XML/YAML/JSON.
41
+
5. Supporto multi-database: Entrambi supportano una vasta gamma di database, ma Liquibase può offrire una maggiore indipendenza dal database grazie ai suoi changelog astratti.
42
+
43
+
Quale scegliere?
44
+
1. Flyway: Ideale se preferisci la semplicità e il controllo manuale sugli script SQL, e se non hai bisogno di funzioni avanzate come rollback dettagliati o migrazioni complesse.
45
+
2. Liquibase: Adatto per progetti complessi che richiedono maggiore flessibilità, rollback dettagliati, indipendenza dal database e supporto per formati di definizione delle migrazioni non SQL.
Copy file name to clipboardexpand all lines: pages/1_1_introduzione.md
+2
Original file line number
Diff line number
Diff line change
@@ -24,6 +24,8 @@ distribuito e collaborativo e dove il database è un componente critico del sist
24
24
</v-clicks>
25
25
26
26
<!--
27
+
Solitamente la prima slide mostra la TOC (Tabella dei Contenuti) ma ho evitato volutamente al fine di scoprire i vari argomenti nel corso della sessione.
28
+
27
29
Alla pari di qualunque progetto software (C/C++, Erlang, Java, etc.) anche per le DDL/DML del database dovremmo arrivare a una situazione di versioning come quella mostrata da questo grafo.
28
30
29
31
Soffermarsi un attimo per spiegare il minimo indispensabile su questo diagramma.
Copy file name to clipboardexpand all lines: pages/1_4_sicurezza_operazioni_deployment.md
+4
Original file line number
Diff line number
Diff line change
@@ -65,3 +65,7 @@ level: 2
65
65
Implementando queste strategie, è possibile ridurre significativamente il rischio associato alla concessione di privilegi elevati agli utenti delle applicazioni durante le migrazioni del database, mantenendo al contempo un flusso di lavoro efficiente per la gestione delle migrazioni stesse.
66
66
67
67
</div>
68
+
69
+
<!--
70
+
Immagino che tutti sappiate che le secret standard di k8s non sono realmente sicure in quanto sfrutta l'encode in base64 per i valori memorizzato al suo interno, motivo per noi non ho fatto menzione.
Copy file name to clipboardexpand all lines: pages/1_7_esempio_progetto_migrazione_flyway.md
+8
Original file line number
Diff line number
Diff line change
@@ -152,6 +152,10 @@ Sotto il cofano, l'esecuzione del comando `flyway migrate` esegue le seguenti at
152
152
153
153
</v-clicks>
154
154
155
+
<!--
156
+
La possibilità delle variabili di ambiente, lo rende abilitato per ambienti CI/CD e k8s.
157
+
-->
158
+
155
159
---
156
160
level: 2
157
161
---
@@ -298,3 +302,7 @@ A seguire un video che mostra l'esecuzione di una serie di migrazioni partendo d
298
302
<divclass="centered-image">
299
303
<imgv-clickwidth="70%"height="70%"src="/images/asciinema/demo_esecuzione_prima_migrazione_full_2x.gif"alt="Esecuzione della prima migrazione del database"/>
300
304
</div>
305
+
306
+
<!--
307
+
Durante l'esecuzione di questa demo non abbiamo visto lo scenario di rollback perché ogni tipo di tool di migrazione lo affronta in modo diverso anche in base alla edizione (OSS, Standard, Tems, Enterprise).
Copy file name to clipboardexpand all lines: slides.md
+6-2
Original file line number
Diff line number
Diff line change
@@ -84,9 +84,13 @@ htmlAttrs:
84
84
</style>
85
85
86
86
<!--
87
-
Con questa presentazione, vorrei discutere con voi un tema su cui sono abbastanza sensibile; credo che sia giunto il momento di affrontarlo in modo concreto e fare quel passo in più necessario per iniziare il processo di automazione anche per quel che riguarda le basi di dati applicative.
87
+
Buon pomeriggio a tutti e grazie per la partecipazione a questa sessione di formazione.
88
88
89
-
Per facilitare lo svolgimento di questa presentazione, vi prego di mettere da parte tutte le vostre domande che affronteremo alla fine di questa presentazione.
89
+
Con questa presentazione, vorrei discutere insieme a voi di un tema su cui sono abbastanza sensibile e su cui ne abbiamo parlato tempo addietro con qualcuno di voi; credo che sia giunto il momento di affrontarlo in modo concreto e fare quel passo in più necessario per iniziare il processo di automazione anche per quel che riguarda le basi di dati applicative.
90
+
91
+
Questa presentazione vuole essere l'introduzione a un argomento conteso tra più aree di competenza e fondamentale per la gestione di un database in un contesto di sviluppo software di tipo collaborativo (o di social coding).
92
+
93
+
Detto ciò, per facilitare lo svolgimento di questa presentazione, vi prego di mettere da parte tutte le vostre domande che affronteremo alla fine di questa presentazione.
0 commit comments