J'ai appris ça add_column
a un :after
option pour définir l'emplacement d'insertion de la colonne. Dommage que je l'ai appris: après avoir ajouté un tas.
Comment puis-je écrire une migration pour simplement réorganiser les colonnes?
Tu peux appeler change_column
, mais vous devez répéter le type de colonne (copiez-le et collez-le simplement à partir de votre autre migration):
def up
change_column :your_table, :some_column, :integer, after: :other_column
end
Ou si vous devez réorganiser plusieurs colonnes dans une même table:
def up
change_table :your_table do |t|
t.change :some_column, :integer, after: :other_column
# ...
end
end
change_column
appels ALTER TABLE
sous la capuche. Depuis MySQL documentation :
Vous pouvez également utiliser
FIRST
etAFTER
dansCHANGE
ouMODIFY
pour réorganiser les colonnes d'une table.