【问题标题】:Avoid default activerecord primary index creation避免创建默认的 activerecord 主索引
【发布时间】:2013-08-07 17:18:59
【问题描述】:

我正在尝试锻炼如何建议/告诉 activerecord 默认情况下不要创建它的主索引。

有谁知道我是怎么做到的?

class CreateHouse < ActiveRecord::Migration
 def change
    create_table :houses do |table|
      table.string :name, :null => false, :unique => true
      table.integer :number, :null => false, :unique => true
      table.string :category, :null => false
      table.timestamps(:null => false)
    end
    add_index :houses, [:category, :number], :unique => true
  end
end

谢谢

【问题讨论】:

    标签: mysql ruby-on-rails ruby activerecord rails-activerecord


    【解决方案1】:

    您可以将id: false 添加到您的create_table 定义中。请尝试以下操作:

    class CreateHouse < ActiveRecord::Migration
     def change
        create_table :houses, id: false do |table|
          table.string :name, :null => false, :unique => true
          table.integer :number, :null => false, :unique => true
          table.string :category, :null => false
          table.timestamps(:null => false)
        end
        add_index :houses, [:category, :number], :unique => true
      end
    end
    

    更新:

    更新了 create_tableadd_index 块以使用 :houses 符号,而不是 kengimel 在编辑请求中建议的 :stores(显然被拒绝了!)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-15
      相关资源
      最近更新 更多