2012-09-24 14 views
5

Abbiamo un database in produzione che ha già un buon numero di righe nella tabella "utente". Si consideri la seguente dichiarazione dal sito flyway:Integrazione di Flyway in un database di produzione

Se si dispone di un database esistente che non è stato riempito da Flyway questa è la strada da percorrere:

  • Creare uno script di migrazione iniziale che ricreerà il tuo attuale stato e dargli un numero di versione basso.
  • Usa flyway: init per creare la tabella dei metadati e impostare questo script come versione corrente.

Mi piacerebbe usare flyway per gestire il mio schema e varie costanti nel database, ma io non voglio V1__Base_version.sql per contenere le informazioni di account per i nostri utenti di produzione attuali, soprattutto considerando che è memorizzato in SCM. Se capisco correttamente queste istruzioni, però, avrei bisogno della possibilità di "ricreare [il mio] stato attuale" con V1__Base_version.sql.

Così creare una migrazione iniziale con solo lo schema e le costanti funzionano correttamente? O i database sulle nostre workstation devono corrispondere a quelli in produzione al 100%?

+0

Risponderò a me stesso in 24 ore, se sono corretto, ma penso che finché eseguo un init flyway nel database di produzione (supponendo che lo schema e le costanti siano corretti), dovrei essere in chiaro. – Joe

risposta

7

Sei corretto. Il comando init è lì per contrassegnare il database di produzione con una versione.

La migrazione iniziale creata (con la struttura del db PROD) è per gli altri ambienti. Non verrà mai eseguito su PROD poiché la sua versione sarà inferiore alla versione di init. Allinerà comunque tutti gli ambienti in modo che le migrazioni successive possano essere applicate allo stesso modo su tutti gli ambienti.

+0

Eccellente. Grazie! – Joe

+0

nella versione più recente del flyway è il comando di base https://flywaydb.org/documentation/command/baseline che è corretto? –

Problemi correlati