Desidero rinominare una colonna di tabella dalla console di rails senza scrivere alcuna migrazione.Come posso rinominare una colonna dalla console di rails senza migrazione?
come posso farlo?
Desidero rinominare una colonna di tabella dalla console di rails senza scrivere alcuna migrazione.Come posso rinominare una colonna dalla console di rails senza migrazione?
come posso farlo?
rails dbconsole
ALTER TABLE name RENAME column TO column
Solo una nota a margine @Boti, il tuo 'db/schema.rb' non verrà aggiornato con questo metodo, che potrebbe causare problemi durante la distribuzione. Se c'è una tale preoccupazione, potresti voler eseguire 'rake db: schema: dump' dopo aver fatto ciò, in modo che il file dello schema sia sincronizzato con la struttura attuale del database (e la denominazione). –
rails g migration ChangeColName
si modifica il file db/migrate/"timestamp" _change_col_name.rb inserire nel cambiamento DEF -
rename_column :tablename, :old_column_name, :new_column_name -save
si esegue in console : rake db:migrate
:-)
Non sono sicuro se confondete "console" con "terminale", ma ciò che l'OP intendeva era come farlo nella console delle guide reali (l'interfaccia IRB) senza scrivere/eseguire un file di migrazione. –
Ho optato per eseguire questo dalla console:
ActiveRecord::Base.connection.rename_column :tablename, :old_column_name, :new_column_name
Risposta migliore. Ti permette di eseguire comandi proprio come faresti nella migrazione di Rails. –
non si dovrebbe fare senza migrazione, non è la sua pratica migliore, né modo di binari. –
So che questo era un fastidioso problema di sincronizzazione db ... – Boti