Mysql
 sql >> Database >  >> RDS >> Mysql

solo schema mysqldump, aggiornamento dello schema senza drop

Come fa MySQL a sapere cosa aggiornare? Non può sapere in quale stato si troverà il database di qualcun altro, quindi non può sapere quali aggiornamenti applicare. Inoltre, gli aggiornamenti spesso richiedono più della semplice modifica dello schema; potrebbero richiedere modifiche ai dati già esistenti o potrebbero essere necessari lo spostamento dei dati dal vecchio schema a quello nuovo. Non otterrai mai qualcosa che rileverà automaticamente tutto ciò.

La soluzione giusta è scrivere le migrazioni. Ogni volta che modifichi il database, invece di cambiare solo lo schema della tua copia di sviluppo, scrivi uno script per aggiornare dallo schema precedente a quello nuovo (e di solito uno script per tornare allo schema precedente, così puoi fare che se è necessario ripristinare un aggiornamento). Quello script fa tutto il necessario per modificare lo schema, spostare i dati e simili.

Framework web più moderni, come Ruby on Rails , avere il supporto per le migrazioni per rendere più facile tenere traccia di quali migrazioni hai già eseguito. Se non stai utilizzando un framework che supporta le migrazioni, non sarebbe troppo difficile scrivere i tuoi script per l'applicazione delle migrazioni. Basta numerare ogni migrazione o inserirvi una data e mantenere una tabella nel database che memorizza solo la versione corrente dello schema in cui ci si trova. Quando esegui lo script di migrazione, se sono presenti migrazioni più recenti di quella versione corrente, applica quegli script in ordine, quindi aggiorna il numero nel database che indica la versione in cui ti trovi.