Skip to content

Commit ac12044

Browse files
author
Antonio Musarra
committed
Aggiornamento test + altre fix
1 parent de8ebab commit ac12044

13 files changed

+74
-16
lines changed
Loading

images/background_slide_1.png

112 KB
Loading
307 KB
Loading

pages/1_11_about_me.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ layout: default
1010

1111
## Contatti
1212

13-
- **Email:** [[email protected]]
13+
1414
- **LinkedIn:** [https://www.linkedin.com/in/amusarra/]
1515
- **Website:** [https://www.sogei.it]
16-
- **GitHub**: [https://github.com]
16+
- **My GitHub Repositories**: [https://github.com/amusarra]
1717
- **My Blog**: [https://www.dontesta.it]

pages/1_1_introduzione.md

+7-1
Original file line numberDiff line numberDiff line change
@@ -53,4 +53,10 @@ merge changes
5353
commit id: "v5" tag: "Version 5" type: HIGHLIGHT
5454
```
5555

56-
</div>
56+
</div>
57+
58+
<!--
59+
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.
60+
61+
Soffermarsi un attimo per spiegare il minimo indispensabile su questo diagramma.
62+
-->

pages/1_2_componenti_chiave_database_versioning.md

+4-2
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,10 @@ layout: default
1313
- **Rollback**
1414
- La capacità di annullare una migrazione, tornando a una versione precedente dello schema. Questo è utile per gestire errori o modifiche non desiderate.
1515
- **Script di seed e fixture**
16-
- Script utilizzati per popolare il database con dati iniziali o di esempio, necessari per testare l'applicazione.
16+
- Script utilizzati per popolare il database con dati iniziali o di esempio, necessari per testare l'applicazione (vedi integration test).
1717

1818
</v-clicks>
1919

20-
20+
<!--
21+
Per la documentazione è preferibile usare l'approccio doc-as-code di cui recentemente ho fatto un post sul gruppo Ready2Learn di Viva Engage o Yammer.
22+
-->

pages/1_3_benefici_database_versioning.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ layout: default
99
- **Coerenza**
1010
- Garantisce che tutti i membri del team di sviluppo lavorino con la stessa versione dello schema del database, riducendo il rischio di conflitti e incoerenze.
1111
- **Tracciabilità**
12-
- Ogni modifica al database è tracciata con un record chiaro di chi ha fatto cosa e quando. Questo facilita il debug e la manutenzione.
12+
- Ogni modifica al database è tracciata con un record chiaro di chi ha fatto cosa e quando. Questo facilita il debug e la manutenzione; inoltre, è utile per scopi di audit e conformità.
1313
- **Automazione**
1414
- Le migrazioni possono essere automatizzate, facilitando l'implementazione delle modifiche in ambienti diversi, come sviluppo, test e produzione.
1515
- **Riproducibilità**

pages/1_4_sicurezza_operazioni_deployment.md

+10-1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,15 @@ Per migliorare la sicurezza quando si utilizzano strumenti di <span v-mark.red="
1717

1818
</v-clicks>
1919

20+
<!--
21+
Per la terza strategia "Utilizzo di un servizio intermedio", è possibile utilizzare tre possibili pattern k8s (Kubernetes) che sono:
22+
1. Job
23+
2. Init Container
24+
3. Operator
25+
26+
Nel caso in cui la propria applicazione sia sviluppata tramite il framewrok Java Quarkus, questo, prevede OOTB dei pattern per assolvere nel modo ottimale all'esecuzione dei task di migrazione.
27+
-->
28+
2029
---
2130
level: 2
2231
---
@@ -55,4 +64,4 @@ level: 2
5564

5665
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.
5766

58-
</div>
67+
</div>

pages/1_5_strumenti_comuni_database_versioning.md

+4-1
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,7 @@ layout: default
1515

1616
</v-clicks>
1717

18-
18+
<!--
19+
Esistono diversi strumenti a supporto delle attività di versioning del database; qui mostrerò quelli più comuni per l'ambienti Java e Python.
20+
Flyway e Liquibase sono integrati con i framework Java cloud-native più conosciuti come Spring Boot e Quarkus.
21+
-->

pages/1_6_esempio_script_flyway.md

+5-1
Original file line numberDiff line numberDiff line change
@@ -32,4 +32,8 @@ ALTER TABLE users ADD COLUMN last_login TIMESTAMP;
3232

3333
Per eseguire la migrazione è sufficiente eseguire il comando `flyway migrate` nella directory contenente gli script di migrazione.
3434

35-
</v-clicks>
35+
</v-clicks>
36+
37+
<!--
38+
Qui vedremo dei semplici script SQL (DDL) di migrazione applicando la migrazione usando Flyway da CLI, senza quindi nessuna integrazione con Quarkus, Spring Boot o altro framework di sviluppo Java.
39+
-->

pages/1_7_esempio_progetto_migrazione_flyway.md

+31-7
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,16 @@ layout: default
66

77
Brevemente vedremo com'è strutturato un classico progetto di migrazione del database usando **Flyway** e come gestire le migrazioni attraverso la CLI (Command Line Interface) messa a disposizione. La versione di riferimento è la OSS Edition v10.13.0
88

9-
<span v-click>Un progetto standard (standalone) in genere include: script di migrazione, configurazione di Flyway e uno script di esecuzione.</span>
9+
<span v-click>Un progetto standard (standalone) in genere include: script di migrazione, configurazione di Flyway e uno script di esecuzione (quest'ultimo opzionale e costruito sulla base delle proprie esigenze).</span>
1010

1111
<v-clicks>
1212

1313
```shell {lineNumbers: false}
14-
.
14+
# V: Indica che si tratta di una migrazione versionata. È un prefisso obbligatorio.
15+
# <Version>: Numero di versione della migrazione. Può essere un numero intero (es. 1, 2, 3) o semantic version. Le versioni devono seguire un ordine naturale per Flyway.
16+
# __: Doppio underscore come separatore tra il numero di versione e la descrizione. È obbligatorio.
17+
# <Description>: Descrizione della migrazione. Deve essere una stringa descrittiva senza spazi (può usare underscore
18+
# _ o trattini - per separare le parole). La descrizione è facoltativa ma consigliata per rendere il file di migrazione leggibile e comprensibile.
1519
├── flyway.toml
1620
├── migrate.sh
1721
└── sql
@@ -23,17 +27,35 @@ Brevemente vedremo com'è strutturato un classico progetto di migrazione del dat
2327

2428
</v-clicks>
2529

26-
<br>
27-
2830
<v-clicks>
2931

3032
- **flyway.toml**: contiene le configurazioni di Flyway (comprese le informazioni di connessioni dal database)
3133
- **migrate.sh**: script shell che esegue la migrazione
3234

35+
</v-clicks>
36+
37+
<div v-click="5"
38+
class="top-20 left-40 transition forward:delay-500" style="position: absolute">
39+
<img src="/images/repository_esempio_on_github.png" height="80%" width="80%" style="border-style: solid; border-color: #ecf3ec; border-width: 1px"/>
40+
</div>
41+
42+
<!--
43+
Come scritto e detto in qualche slide precedente, Flyway (https://flywaydb.org/) è uno strumento Open Source sviluppa da RedGate e fornito in tre diverse edizioni ogni delle quali con caratteristiche diverse che possono essere valutate qui https://www.red-gate.com/products/flyway/editions.
44+
3345
È quindi richiesto avere Flyway installato sulla propria macchina o sulla quella dedicata all'esecuzione dello script.
3446
Puoi scaricarlo dal sito ufficiale di Flyway [qui](https://documentation.red-gate.com/fd/command-line-184127404.html).
3547
36-
</v-clicks>
48+
Tipi di Migrazioni
49+
Oltre alle migrazioni versionate, Flyway supporta anche altri tipi di migrazioni:
50+
51+
1. Migrazioni Ripetibili: Questi script vengono eseguiti ogni volta che cambiano. Utilizzano il prefisso R al posto di V.
52+
2. Migrazioni Baseline: Utilizzate per baselining di un database già esistente. Utilizzano il prefisso B al posto di V.
53+
3. Migrazioni Patch: Utilizzate per correggere i dati senza cambiare la struttura del database. Utilizzano il prefisso P al posto di V.
54+
55+
Il pattern dei file di migrazione può essere configurato tramite le proprietà di Flyway se desideri utilizzare un pattern diverso dal default.
56+
57+
Il progetto di esempio è disponibile sul mio repository GitHub e come potete vedere con l'uso dei tag è possibile gestire le varie versioni dello schema del database.
58+
-->
3759

3860
---
3961
level: 2
@@ -70,6 +92,9 @@ il formato tradizionale (legacy) conf (properties format). Per maggiori consulta
7092

7193
</v-clicks>
7294

95+
<!--
96+
Tramite la configurazione è possibile diversificare per ambiente di deployment, questo è fondamentale quando occorre agire sui diversi ambienti, come sviluppo, validazione, pre-produzione e produzione, a maggior ragione nel caso in cui volessi sfruttare gli ambienti di CI/CD.
97+
-->
7398

7499
---
75100
level: 2
@@ -256,6 +281,5 @@ level: 2
256281
A seguire un video che mostra l'esecuzione di una serie di migrazioni partendo da zero. Il video è accelerato 5 volte per questioni di tempo. Qui https://asciinema.org/a/660361 puoi trovare il video completo.
257282

258283
<div class="centered-image">
259-
<img v-click width="70%" height="70%" src="/images/asciinema/demo_esecuzione_prima_migrazione_full_5x.gif" alt="Esecuzione della prima migrazione del database"/>
284+
<img v-click width="70%" height="70%" src="/images/asciinema/demo_esecuzione_prima_migrazione_full_3x.gif" alt="Esecuzione della prima migrazione del database"/>
260285
</div>
261-

pages/1_9_riferimenti.md

+2
Original file line numberDiff line numberDiff line change
@@ -40,5 +40,7 @@ level: 2
4040
3. Risorse Online - Frameworks Java
4141
- **Quarkus: Using Flyway**: guida ufficiale su come utilizzare Flyway con Quarkus (https://quarkus.io/guides/flyway).
4242
- **Quarkus: Using Liquibase:** guida ufficiale su come utilizzare Liquibase con Quarkus (https://quarkus.io/guides/liquibase).
43+
- **Using Liquibase with Spring Boot**: lo scopo di questo tutorial è guidarti attraverso il processo di utilizzo di Liquibase come parte del flusso di lavoro Spring Boot (https://contribute.liquibase.com/extensions-integrations/directory/integration-docs/springboot/).
44+
- **Intro to Database Migrations in Spring Boot 3 with Flyway**: in questo video è mostrato come integrare Flyway in un'applicazione Spring Boot 3 e utilizzarlo per gestire in modo efficace le migrazioni dei database. Concetti di base di Flyway, come la sua configurazione, la creazione ed esecuzione di script di migrazione e il controllo delle versioni del database (https://www.youtube.com/watch?v=p1V5GcKUJv0).
4345

4446
</v-clicks>

slides.md

+8
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,14 @@ htmlAttrs:
8383
}
8484
</style>
8585

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.
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.
90+
91+
Bene! Iniziamo
92+
-->
93+
8694
---
8795
src: ./pages/1_1_introduzione.md
8896
---

0 commit comments

Comments
 (0)