У меня есть sqlite3 db в приложении rails со следующей схемой
ActiveRecord::Schema.define(:version => 20100816231714) do
create_table "comments", :force => true do |t|
t.string "commenter"
t.text "body"
t.integer "post_id"
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "posts", :force => true do |t|
t.string "name"
t.string "title"
t.text "content"
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "tags", :force => true do |t|
t.string "name"
t.integer "post_id"
t.datetime "created_at"
t.datetime "updated_at"
end
end
Я начал с отношения Post: has_many с тегами, поэтому каждый тег имеет ссылку на post_id.
Теперь я хочу изменить это отношение на has_and_belongs_to_many, я знаю, что мне нужно создать таблицу соединений и т. Д. .... это не проблема и работает
Проблема возникает, когда я пытаюсь удалить post_id из таблицы тегов. Моя миграция выглядит так:
class RemoveFieldsToTags < ActiveRecord::Migration
def self.up
remove_column :tags, :post_id
end
def self.down
add_column :tags, :post_id, :references
end
end
Когда я запускаю rake db: migrate и rake db: migrate: up VERSION = Ничего не происходит, когда я запускаю rake db: migrate: down VERSION = Я получаю столбец:
SQLite3::SQLException: duplicate column name: post_id: ALTER TABLE "tags" ADD "post_id" references
Кто-нибудь знает, что происходит?