E 'possibile rinominare una colonna usando un comando come:rinominare una colonna in Rails
script/generate migration AddColumnToTable column:type
? Grazie.
E 'possibile rinominare una colonna usando un comando come:rinominare una colonna in Rails
script/generate migration AddColumnToTable column:type
? Grazie.
Rails ha un comando di migrazione su ActiveRecord ConnectionAdapter chiamato rename_column
. È possibile generare una migrazione e quindi scrivere il codice da soli. Esempio (MySQL):
script/generate migration rename_my_column_by_hand
quindi modificare il file viene creato:
class RenameMyColumnByHand < ActiveRecord::Migration
def self.up
rename_column :my_table, :old_name, :new_name
end
def self.down
rename_column :my_table, :new_name, :old_name
end
end
Esegue SQL come:
ALTER TABLE my_table CHANGE old_name new_name BIGINT;
Nota Ciò rinomina solo la colonna, ha vinto' t rinomina qualsiasi riferimento a te presente su altre tabelle.
Ottima domanda. La risposta è, purtroppo, no. Vedere Rails 2.3.5 codice sorgente:
lib/rails_generator/generators/components/migration/migration_generator.rb
Le uniche parole chiave che sono riconosciuti dal generatore di migrazione sono add
, remove
, e to
/from
.
Qui uso un po 'di inganno. Dì che voglio cambiare colonna foo in bar.
Creare una migrazione con i seguenti passi
Questo è ex-tre-me-ly fragile. Se un passo fallisce, potresti perdere i dati ..
possibile duplicato di [Come rinominare una colonna del database nei binari usando la migrazione?] (Http://stackoverflow.com/questions/1992019/how-to-rename-a -database-column-in-rails-using-migration) – CharlesB