remove_column не удаляет столбец или выдает какие-либо ошибки в рельсах

У меня есть 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

Любой знает, что происходит on?

5
задан rogermushroom 17 August 2010 в 00:22
поделиться