Sha256: 29cdb57dbcb1ec5548e3e7ad2630dcabc2acb2eb83ee0d0c62b4ef3b71781506

Contents?: true

Size: 1.3 KB

Versions: 2

Compression:

Stored size: 1.3 KB

Contents

###
# CreateMentions class
#
# This class defines the create mentions migration in mention system
###
class CreateMentions < ActiveRecord::Migration[5.0]
  ###
  # Changes the database
  ###
  def change
    ###
    # Mentions table creation
    ###
    create_table :mentions do |t|
      ###
      # Mentionee id field and mentionee type field definition
      ###
      t.references :mentionee, polymorphic: true

      ###
      # Mentioner id fiel and mentioner type field definition
      ###
      t.references :mentioner, polymorphic: true

      ###
      # Timestamps fields definition
      ###
      t.timestamps null: false
    end

    ###
    # Mentions table mentionee id field and mentionee type field index addition
    ###
    add_index :mentions, [:mentionee_id, :mentionee_type], name: "mentions_mentionee_idx"

    ###
    # Mentions table mentioner id field and mentioner type field index addition
    ###
    add_index :mentions, [:mentioner_id, :mentioner_type], name: "mentions_mentioner_idx"

    ###
    # Mentions table mentionee id field and mentionee type field and mentioner id field and mentioner type field unique index addition
    ###
    add_index :mentions, [:mentionee_id, :mentionee_type, :mentioner_id, :mentioner_type], name: "mentions_mentionee_mentioner_idx", unique: true
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
mention_system-0.1.1 lib/generators/mention_system/templates/migration.rb
mention_system-0.1.0 lib/generators/mention_system/templates/migration.rb