È possibile sostituire db/migrate/* con il contenuto di db/schema.rb, in modo da avere un solo passaggio di migrazione.Devo appiattire le migrazioni di Rails?
Qualcuno di voi ha mai fatto questo? Perché?
È possibile sostituire db/migrate/* con il contenuto di db/schema.rb, in modo da avere un solo passaggio di migrazione.Devo appiattire le migrazioni di Rails?
Qualcuno di voi ha mai fatto questo? Perché?
Perché vuoi farlo? Potresti semplicemente eseguire rake db:schema:load
se non vuoi eseguire tutte le migrazioni. Le migrazioni non vengono utilizzate (solo) per inizializzare un nuovo database, ma per migrarlo a un'altra versione.
È possibile eseguire rake db: schema: caricare per importare l'intero schema in un unico passaggio. Questo è consigliato, al contrario di eseguire una tonnellata di migrazioni.
Inoltre, alcuni grandi pacchetti di kit di Ruby on Rails (come quello che mi sta sfuggendo di mente ora che consente di configurare un sito di e-commerce nell'app Rails), appiattiscono le loro migrazioni.
Ho anche conosciuto progetti con un sacco di migrazioni per fare questo una volta ogni tanto ridurre il tempo necessario per eseguire rake db: migrare dall'inizio alla fine (ad esempio, sul server di integrazione continua)
Quello sarebbe il progetto baldoria. Hanno parlato di appiattimento delle loro migrazioni di recente –
Perché ci sono volte in cui le vecchie migrazioni e le modifiche al codice non sono più compatibili. Quindi non è possibile eseguire tutte le migrazioni da zero senza l'hacking dei vecchi. – Otto