在迁移中添加Id列

我有一个Rails应用程序,其中一个模型没有id列。 做一些研究我发现了创建它的迁移:

 create_table(:the_model, :id => false) do |t| # columns end 

现在,在新的迁移中,我想以Rails标准方式添加id列(不使用特定于数据库的sql)。 我怎样才能做到这一点?

我已经尝试过这个没有成功:

 change_table(:the_model, :id => true) do |t| end 

您可以手动添加id列:

 add_column :table_name, :id, :primary_key 

或清除(或备份)您的数据,回滚到此迁移,摆脱选项:id => false ,然后重新迁移。

你已经得到了答案,但是在这种情况下,这里有一个单行程

 rails generate migration AddIdToModel id:integer 

查看迁移文件名的语法Add ColumnName To TableName跟随列描述。 它将生成如下所示的内容

 class AddIdToModel < ActiveRecord::Migration def change add_column :models, :id, :integer end end 

现在,如果您有任何其他想法,可以更改此行。 并运行rake db:migrate

你不需要提及:integer

rails g migration add_id_to_model id:primary_key为我工作。