Le migrazioni possono gestire sia la struttura (schema) che i dati, ma una volta avviato, il presupposto è che nella maggior parte dei casi i dati di produzione sono la fonte di informazioni canonica. Se ci sono dati necessari per impostare il database, ad esempio cose come elenchi ("Mastercard, Visa, Amex) o dati di bootstrap (ad es. Impostare un utente amministratore) questo può andare nel file" semi .rb ". che fa una copia di un database (schema e contenuto) e lo applica automaticamente: in genere questo è una cosa singola.
(Passa alla altra direzione - copia del database di produzione su QA o istanze di sviluppo è un caso di uso comune, in un primo momento si potrebbe pensare: Rails dovrebbe essere in grado di farlo, ma copiare un tipico database di produzione può essere irto di problemi, il più importante è: copiare un database di produzione con informazioni utente è un rischio significativo per la sicurezza qualsiasi operazione di copia dovrebbe perlomeno rendere anonimi gli utenti: un secondo problema riguarda solo le dimensioni del database: un database di produzione è spesso utile o addirittura necessario per riprodurre problemi di prestazioni reali o altri casi limite, ma qualsiasi database di grandi dimensioni richiederà molto tempo per essere replicato ed è altamente dipendente sia dal database specifico che si sta utilizzando, sia dalle autorizzazioni)
Insomma, Rails fa la cosa giusta con la migrazione: assume aggiornamenti strutturali sono OK, ma richiede di compilare i dati. Spero che questo ti aiuti!
fonte
2012-03-24 00:27:16
vuoi dire che hai dati sul box locale che vuoi in produzione? Quanti dati sono? Compilazione di tabelle di ricerca? – natedavisolds