Sto cercando modi per scrivere le migrazioni in rotaie che possono essere eseguite contro il database molte volte senza fallire.Come scrivere le migrazioni condizionali nelle rotaie?
Per esempio diciamo che ho questa migrazione:
class AddUrlToProfile < ActiveRecord::Migration
def self.up
add_column :profile, :url, :string
end
def self.down
remove_column :profile, :url
end
end
Se la colonna url
esiste già nella tabella Profile
(se lo schema.rb è stato modificato in modo imprevisto, per esempio), la mia migrazione avrà esito negativo dicendo che è un duplicato!
Quindi, come eseguire questa migrazione solo se necessario?
Grazie
bella soluzione! Grazie! –
FYI: in genere è una cattiva idea fare riferimento esplicitamente ai modelli nella propria migrazione: cosa accadrebbe se quel modello venisse rimosso in futuro? O cambiamenti? Invece, crea un modello monouso aggiungendo '' 'profilo di classe