Я узнал, что add_column имеет параметр :after, чтобы установить, где вставлен столбец. Жаль, что я узнал об этом: после добавления группы.
Как написать миграцию, чтобы просто переупорядочить столбцы?
Ответ 1
Вы можете вызвать change_column, но вам нужно повторить тип столбца (просто скопируйте и вставьте его из другой миграции):
def up
change_column :your_table, :some_column, :integer, after: :other_column
end
Или если вам нужно переупорядочить несколько столбцов в одной таблице:
def up
change_table :your_table do |t|
t.change :some_column, :integer, after: :other_column
# ...
end
end
change_column вызывает ALTER TABLE под капотом. Из документации MySQL :
Вы также можете использовать операции FIRST и AFTER в CHANGE или MODIFY для переупорядочить столбцы в таблице.
Ответ 2
Решение Stefan идеально подходит, если вы имеете дело с несколькими столбцами. Если у вас есть несколько столбцов, которые нужно переустановить и на Mac, я предлагаю вам взглянуть на Sequel Pro, отличный инструмент управления базами данных, который упрощает переупорядочивание столбцов базы данных. Просто перетащите.