我有一个Rails应用程序一个sqlite3的分贝以下架构remove_column不列删除或提供在轨
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
我一开始的帖子任何错误:的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
当我运行耙分贝:迁移和耙分贝:迁移:后续版本=没有任何反应,当我运行耙分贝:迁移:缩小版本=我得到柱:
SQLite3::SQLException: duplicate column name: post_id: ALTER TABLE "tags" ADD "post_id" references
任何人都知道发生了什么事?
欢呼的答案,我开始使用has_many:through关系,但决定增加了一些不必要的复杂性(我将简单化),关于这种关系的官方立场似乎是'当你想保留时使用关于连接的信息'例如。关系的时间是作出,结果等... – zode64 2010-08-17 18:09:29
这工作的方式,谢谢 – zode64 2010-08-17 19:35:33