Rails 4迁移:使用主键创建mysql表但不使用auto_increment

时间:2016-02-04 09:19:52

标签: mysql ruby ruby-on-rails-4 ruby-on-rails-4.2

可能重复How to turn off auto_increment in Rails Active Record

对rails很新,我想创建一个fm_zipcodeszipcode作为主键,但我不想要额外的auto_increment。我尝试了不同的方法,但没有一个方法适合我,auto_increment没有反映在db/schema.rb文件中。

create_table :fm_zipcodes, :primary_key => :zipcode do |t|
  t.integer :state_id, null: false
  ..
end

结束回答https://stackoverflow.com/a/17960388/1093542

2 个答案:

答案 0 :(得分:1)

我会做这样的事情:

# in your migration
def up
  create_table :fm_zipcodes, id: false do |t|
    t.integer :zipcode, null: false
    # ...
  end
  add_index :fm_zipcodes, :zipcode, unique: true
end

# in your FmZipcode model
self.primary_key = 'zipcode'

答案 1 :(得分:0)

create_table :fm_zipcodes do |t|
  t.integer :zipcode, null: false
# ...
end
add_foreign_key :fm_zipcodes, :zipcode

更多信息,请参阅http://api.rubyonrails.org/?q=add_foreign_key