2016-04-27 26 views
5

Recentemente ho distribuito un'applicazione web Django su Elastic Beanstalk. L'ho configurato in modo tale da poter accedere all'interfaccia di amministrazione di Django online e aggiungere contenuti al sito online.Sincronizzazione del database Beanstalk locale ed elastico?

Ora, il sito è ancora in fase di sviluppo - sarò tritare e cambiando e rendendo ritocchi, ecc Purtroppo, ogni volta schiero la mia app dalla versione locale, la banca dati (SQLite) viene sovrascritto e qualsiasi contenuto ho aggiunto sulla versione online è cancellato.

C'è un modo per "estrarre" il database (e il database da solo) dal sito online? In alternativa, potrei dire al comando 'deploy' di ignorare il database?

Grazie gente.

+0

Che motore di database? MySQL, PostgreSQL? In ogni caso, potresti semplicemente fare qualcosa come mysqldump/restore come faresti con qualsiasi database in esecuzione ovunque. –

+0

Grazie per il tuo commento, @Mark. È solo uno SQLite e non sono sicuro di come accedere alla versione online del database in Elastic Beanstalk. C'è un modo per farlo? –

+0

Se è SQLite è una situazione completamente diversa (sarebbe stata una buona informazione da includere nella domanda originale). Probabilmente dovresti determinare un modo per distribuire i dati ogni volta che distribuisci l'app. Stai limitando l'applicazione Beanstalk a una singola istanza EC2? –

risposta

0

Come già detto in diversi commenti, poiché (probabilmente) il database SQLite è un file nella directory del progetto, viene sostituito/eliminato ogni volta che si distribuisce l'applicazione, ecco perché si perdono tutti i dati tra i deployment.

Per le istanze di produzione (e in particolare per questi servizi PaaS) è ​​necessario utilizzare un database esterno (PostgreSQL, MySQL, ecc.).

Rispondendo più direttamente alla tua domanda e assumendo che tu voglia lasciare la configurazione così com'è (almeno quando hai posto la domanda), vedo 2 modi per salvare il DB tra le distribuzioni. Uno sta accedendo da ssh all'istanza e recupera il file del database, l'altro sta esportando i dati utilizzando il comando dumpdata da django e quindi lo carica utilizzando loaddata.

+0

Alla fine ho spostato il mio database su un server MySQL e puntato le versioni di produzione e sviluppo su di esso, in base a questo e ai consigli nei commenti. Grazie. –

Problemi correlati