giannino1995 ha scritto:
V1_2__Add_Col_Dob è una query che potrei inviare al DBMS senza Flyway.
Certo che "tecnicamente" lo si potrebbe fare a mano ma NON è quello il punto.
giannino1995 ha scritto:
Faccio un dump del DBMS, carico tutto in locale, lancio la query scritta sopra, testo la nuova webapp e se tutto va bene eseguo la query anche sul server reale prima di sostituire il file .war.
Questa è la tua visione molto semplificata di uno scenario molto banale/basilare in cui tutto è abbastanza ristretto e sotto il tuo controllo e quindi sostanzialmente fai "come ti pare".
Ma gli strumenti come Flyway (ne esistono anche altri) servono specialmente in grossi progetti/grandi aziende dove una applicazione tipicamente "vive" in svariati ambienti differenti, ad esempio "dev", "test", "qa", "alfa", "preprod", "prod" a seconda delle scelte fatte.
E queste modifiche "incrementali" al database N-O-N le si fanno mai "a mano" .... vengono fatte AUTOMATICAMENTE. Se hai notato, Flyway si crea una tabella a suo uso in cui tiene traccia di tutte le versioni flaggando quelle che ha già applicato. In ciascuno dei vari ambienti ci potrebbe essere una "versione" differente in un certo momento. Questi strumenti gestiscono da soli questi script e li applicano in maniera opportuna quando/come possibile tenendo traccia di tutto.
Se uno script aggiunge dei dati a delle tabelle di "descrizione", tu vai a mano su ciascun ambiente a vedere se sono già stati applicati?? Oltre alla perdita di tempo è pure "pericoloso", perché l'essere umano .... beh, sbaglia, si distrae ecc... E se non guardi attentamente magari erano già stati aggiunti (da un'altra persona) e li aggiungi una seconda volta? Avrai dei duplicati .... E se non te ne accorgi subito???
E se tu sviluppatore non avessi neanche accesso a
tutti gli ambienti? (io ad esempio nei lavori fatti non avevo MAI accesso all'ambiente/db di "produzione")
In contesti abbastanza grandi
non puoi dire: "faccio un dump del db test e lo metto su preprod (o peggio il contrario)" oppure "faccio una insert a mano sul db di produzione". Se fai questi ragionamenti in queste aziende/contesti di un certo livello ..... ti "sparano"!!!! (a meno che sei un consulente esterno e ti buttano fuori subito ..)
giannino1995 ha scritto:
Non vedo utilità alcuna in questo Flyway.
Onestamente: lascia perdere Flyway. NON è importante ai fini dello studio di Spring Boot e probabilmente non ti capiterà mai di usarlo in contesti davvero più "reali".