Come si apportano modifiche allo schema in un database live senza tempi di inattività?
Ad esempio, supponiamo che io abbia un database PostgreSQL con una tabella che include vari dati utente come indirizzi e-mail ecc., Tutti associati a utenti specifici. Se volessi spostare gli indirizzi e-mail in una nuova tabella dedicata, dovrei cambiare lo schema e quindi migrare i dati e-mail nella nuova tabella. Come è possibile farlo senza interrompere le scritture nella tabella originale? Sicuramente mentre i dati vengono sovrascritti dalla vecchia tabella a quella nuova, i nuovi dati continuerebbero a essere scritti nella vecchia tabella e verrebbero persi, giusto?
Immagino che questo problema si presenti abbastanza frequentemente, ma non riesco a trovare alcuna soluzione standard per affrontarlo.
Questo articolo affronta il problema, ma non ho capito bene il passaggio 3. Dice di scrivere su entrambe le tabelle, quindi di migrare i vecchi dati dalla prima tabella a quella nuova. Come ti assicuri di migrare solo i vecchi dati?
(Uso PostgreSQL su Heroku .)