Sha256: 2d62a1b575423c5d14af6ca49d1362b016673443c6658ef70356a6171cba717f

Contents?: true

Size: 775 Bytes

Versions: 2

Compression:

Stored size: 775 Bytes

Contents

# AWEXOME LABS
# DoesKeyValue
#
# CreateKeyValueIndex -- generated migration template for key/value index table

class CreateKeyValueIndex < ActiveRecord::Migration
  def self.up
    create_table :key_value_index do |t|
      # The key is a composite of the grouping and key name (e.g., "settings.user_id")
      t.string :key_name
      
      # The stored value is saved as varchar(255), which limits indexability slightly:
      t.string :value
      
      # Store details about the target object:
      t.string :obj_type
      t.integer :obj_id
      
      # Track all touches:
      t.timestamps
    end
    
    # Index is important here:
    add_index :key_value_index, [:obj_type, :key_name, :value]
  end

  def self.down
    drop_table :key_value_index
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
doeskeyvalue-0.1.1 lib/generators/doeskeyvalue/templates/create_key_value_index.rb
doeskeyvalue-0.1.0 lib/generators/doeskeyvalue/templates/create_key_value_index.rb