Sto programmando un'applicazione web usando sqlalchemy. Tutto è andato liscio durante la prima fase di sviluppo quando il sito non era in produzione. Potrei facilmente cambiare lo schema del database semplicemente cancellando il vecchio database sqlite e crearne uno nuovo da zero.Come gestire in modo efficiente le frequenti modifiche dello schema utilizzando sqlalchemy?
Ora il sito è in produzione e devo conservare i dati, ma voglio comunque mantenere la velocità di sviluppo originale convertendo facilmente il database nel nuovo schema.
Quindi supponiamo di avere model.py alla revisione 50 e model.py una revisione 75, che descrive lo schema del database. Tra questi due schemi la maggior parte delle modifiche è banale, ad esempio una nuova colonna è dichiarata con un valore predefinito e voglio solo aggiungere questo valore predefinito ai vecchi record.
Eventualmente alcune modifiche potrebbero non essere banali e richiedere un pre-calcolo.
Come si gestiscono (o sarebbero) le applicazioni Web in rapida evoluzione con, ad esempio, una o due nuove versioni del codice di produzione al giorno?
A proposito, il sito è scritto su piloni se questo fa alcuna differenza.
"Così è vale la pena usare la migrazione? " dovrebbe essere una domanda separata Hai una risposta su come migrare. Chiedendo i casi d'uso per sqlalchemy-migrate e il tuo caso d'uso specifico è più specifico di questa domanda generale. –
OK, quindi ho bisogno di fare un'altra domanda sulla migrazione per sapere quale risposta accettare. – ascobol
@ascobol: "un'altra domanda sulla migrazione per sapere quale risposta accettare". Falso. Hai delle risposte qui. "Lo strumento [X] ne vale la pena?" non è correlato a "come posso migrare?". Hai delle risposte a "come?". Chiedendo il valore di un particolare strumento non è correlato a "come?" –