通过rails中的迁移添加自动增量
如何通过Rails Migration向我的表users
名为user_number
的列添加自动增量属性。
我已经有一个id字段,它是它的主键,它是一个自动增量字段。 我试图创建一个新的自动增量字段而不删除此id字段..
你可以直接修改你的mysql表。 试试这个:
Alter table Tablename modify column ColumnName int(11) auto_increment;
您可以参考Ruby on Rails中的自动递增非主键字段来以rails方式执行它。
您还可以在创建方法内部提出一个非常愚蠢的黑客,就像在您的模型中一样:
def self.create(user, user_number) user = User.new #update fields user.user_number += 1 user.save end
但是我仍然会问你为什么不将id
本身用作user_number
?
class CreateSimpleModels < ActiveRecord::Migration def self.up create_table :simple_models do |t| t.string :name t.integer :user_number t.timestamps end execute "CREATE SEQUENCE simple_models_user_number_seq OWNED BY simple_models.user_number INCREMENT BY 1 START WITH 1" end def self.down drop_table :simple_models execute "DELETE SEQUENCE simple_models_user_number_seq" end end