簡體   English   中英

通過rails中的遷移添加自動增量

[英]Add autoincrement via migration in rails

如何通過Rails Migration將自動增量屬性添加到我的表users名為user_number的列。

我已經有一個id字段,它是它的主鍵,它是一個自動增量字段。 我試圖創建一個新的自動增量字段而不刪除此id字段..

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

您可以直接修改您的mysql表。 嘗試這個:

Alter table Tablename modify column ColumnName int(11) auto_increment;

您可以參考Ruby on Rails中的自動遞增非主鍵字段來以rails方式執行它。

您還可以在create方法中創建一個非常愚蠢的hack,就像在模型中一樣:

def self.create(user, user_number)
 user = User.new #update fields
 user.user_number += 1
 user.save
end

但是我仍然會問你為什么不將id本身用作user_number

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM