2013-03-19 56 views
1

我写了一个连接模型,它看起来像一个迁移:追溯添加主键的表

create_table "project_memberships", :id => false, :force => true do |t| 
    t.integer "user_id" 
    t.integer "project_id" 
    t.datetime "created_at", :null => false 
    t.datetime "updated_at", :null => false 
    t.integer "id" 
    end 

我想现在强行创建IDS。我必须删除表并重新创建它,或者我可以写一个迁移消除这个约束?

+0

可能重复的[如何将主键添加到一个表在轨道](http://stackoverflow.com/questions/9644509/how-to-add-a-primary-key-to-a-table-in-rails) – ABMagil 2014-11-09 15:52:06

+0

感谢您的注意,@ABMagil。我想在这里留下这个问题,因为在我的情况下,已经有一个“id”列(链接中不是这样)。不过,如果这对StackOverflow社区没有太大的区别,我很乐意关闭它。 – 2014-11-09 17:53:48

回答

2

随着谷歌搜索少量... http://thinkwhere.wordpress.com/2009/05/09/adding-a-primary-key-id-to-table-in-rails/

生成一个空迁移:

rails generate migration AddIdToProjectMemberships 

,并填写它:

def change 
    add_column :project_memberships, :id, :primary_key 
end  

也有这样的问题,之前.. how to add a primary key to a table in rails

+0

对不起,我没有想到在我的搜索中使用术语主键。谢谢! – 2013-03-19 22:59:01

+0

没问题,做了这个工作吗? – Zippie 2013-03-19 23:06:57

+0

它的确如此,谢谢。 – 2013-03-21 06:29:19