2013-05-07 18 views
5

Ho una cartella multimediale che memorizza tutte le mie immagini caricate durante lo sviluppo e sto spingendo il mio progetto django (1.5.1) su un server di sviluppo su heroku. All'interno della cartella multimediale che hoHeroku sta cancellando file su git push?

media/ 
    # cache and images were commited before .gitignored was added 
    cache/ # store thumbnails 
    images/ # store images 
    .gitignore 

il .gitignore ha

* 
!.gitignore 

Il problema è ogni volta che git push a Heroku, tutti i miei arrivi di test vengono spazzati via da git. C'è un modo per affrontare questo?

risposta

9

Questo non è un problema con Git, ma piuttosto con Heroku. Heroku's file system è temporaneo e viene reimpostato tra i deploys. Utilizzare un servizio come Amazon S3 per archiviare i file caricati.

+0

Non sono sicuro che questo aiuterà il mio problema. Non voglio che i nuovi file su heroku vengano cancellati. Non mi interessa cosa c'è nella cartella git media. – Derek

+0

@Derek: Non è git che li sta cancellando. Heroku ha un file system effimero (i file temporanei vengono cancellati tra i deploys). Usa qualcosa come S3 per la memorizzazione permanente dei file. – mipadi

+2

@Derek mipadi ha ragione. Spiegherò come Heroku fa i loro spiegamenti. Crea una nuova directory, tira da git alla nuova directory (questa sarà la tua nuova versione), quindi quando sarà pronta per affrontare il mondo (tutto il lavoro è stato fatto configurando l'applicazione), cambierà semplicemente le directory di lavoro link simbolico alla tua nuova directory di rilascio. Questo è il modo corretto in cui i deploys dovrebbero comportarsi. Ciò significa che tutti i file caricati e archiviati nella vecchia versione non saranno disponibili per la tua nuova versione. Usa Amazon S3 per archiviare i tuoi file caricati e tenerne traccia in un DB. – JoshEmory