Diciamo che creo una tabella in una migrazione Rails, specificando di omettere la colonna ID:In una migrazione di Rails, è possibile indicare che una colonna appena aggiunta deve essere prima o dopo una colonna esistente nella tabella?
create_table :categories_posts, :id => false do |t|
t.column :category_id, :integer, :null => false
t.column :post_id, :integer, :null => false
end
tardi decido che voglio aggiungere una colonna ID come chiave primaria in modo da creare una nuova migrazione:
class ChangeCategoriesToRichJoin < ActiveRecord::Migration
def self.up
add_column :categories_posts, :id, :primary_key
end
def self.down
remove_column :categories_posts, :id
end
end
Ma quando guardo il tavolo dopo la migrazione, sembra che questo:
colonnacategory_id
post_id
id
l'ID è in ultima posizione nella tabella, mentre non per prima cosa sarebbe una colonna id.
C'è un modo per modificare la migrazione di ChangeCategoriesToRichJoin per insistere sulla colonna id che si sta creando PRIMA della colonna id_destinazione nella tabella?
Oppure devo lasciare la tabella e aggiungere la colonna nella definizione "Crea tabella"?
Quello era il mio sospetto. Grazie per la conferma. –