如何更改rails迁移文件中的主键?

我需要像这样迁移一个旧的mysql表:

Products name (string, primary_key) 

到这个架构:

 Products id (integer, primary_key, auto_generated) name (unique) 

我需要在新表中填充Products.id值。 如何编写rails迁移文件? 我正在使用Rails 3.2.7

我现在有2个问题:1。我找不到在ActiveRecord :: Migration 2中删除主键的方法。我不知道如何为新添加的主键生成值。

您可以在迁移中执行任意SQL:

 execute "ALTER TABLE `products` DROP PRIMARY KEY" 

然后添加新列:

 add_column :products, :id, :primary_key 

看到:

删除MySQL中的主键

如何将主键添加到rails中的表

http://thinkwhere.wordpress.com/2009/05/09/adding-a-primary-key-id-to-table-in-rails/

http://api.rubyonrails.org/classes/ActiveRecord/Migration.html

如果您使用的是Postgresql,则语法略有不同。

 ALTER TABLE  DROP CONSTRAINT _pkey;