回答

9

您需要执行一条SQL语句。

statement = "ALTER TABLE `users` CHANGE `id` `id` SMALLINT(5) UNSIGNED NOT NULL AUTO_INCREMENT" 
ActiveRecord::Base.connection.execute(statement) 

您可以手动条目迁移

注意这只是一个例子。最终的SQL语句语法取决于数据库。

+1

我是否正确地假设您的答案是Rails没有提供一种方法来执行此操作,而无需直接执行SQL语句?我期望的是:'t.integer:auto_i,::auto_increment => true'来工作(但它没有)。 – kingjeffrey 2010-07-10 19:41:24

+3

是的Rails没有在迁移中提供:auto_increment关键字 – user386660 2010-07-10 22:29:55

+0

如果你想在Rails中使用所有关键字或其他好东西的话。 “用于ROR的rubymine IDE”将非常有用。我在过去6个月使用过。 – user386660 2010-07-10 22:32:13