Допустим, я создаю таблицу в миграции Rails, указав опустить столбец ID:
create_table :categories_posts, :id => false do |t|
t.column :category_id, :integer, :null => false
t.column :post_id, :integer, :null => false
end
Позже я решаю, что хочу добавить столбец идентификатора в качестве первичного ключа, поэтому создаю новую миграцию:
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
Но когда я смотрю на таблицу после миграции, она выглядит так:
category_id
post_id
id
Столбец id находится в последней позиции в таблице, тогда как обычно столбец id будет первым.
Есть ли способ изменить миграцию ChangeCategoriesToRichJoin, чтобы настаивать на создании столбца id ДО создания столбца category_id в таблице?
Или мне нужно удалить таблицу и добавить столбец в определение «создать таблицу»?