Sha256: 6d6d4e98c81f2b9ac17077e331cb3c42babd1d97a3a124554ba4cfdec500d559

Contents?: true

Size: 1.34 KB

Versions: 1

Compression:

Stored size: 1.34 KB

Contents

###
# CreateBookmarks class
#
# This class defines the create bookmarks migration in bookmark system
###
class CreateBookmarks < ActiveRecord::Migration[5.0]
  ###
  # Changes the database
  ###
  def change
    ###
    # Bookmarks table creation
    ###
    create_table :bookmarks do |t|
      ###
      # Bookmarkee id field and bookmarkee type field definition
      ###
      t.references :bookmarkee, polymorphic: true

      ###
      # Bookmarker id fiel and bookmarker type field definition
      ###
      t.references :bookmarker, polymorphic: true

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

    ###
    # Bookmarks table bookmarkee id field and bookmarkee type field index addition
    ###
    add_index :bookmarks, [:bookmarkee_id, :bookmarkee_type], name: "bookmarks_bookmarkee_idx"

    ###
    # Bookmarks table bookmarker id field and bookmarker type field index addition
    ###
    add_index :bookmarks, [:bookmarker_id, :bookmarker_type], name: "bookmarks_bookmarker_idx"

    ###
    # Bookmarks table bookmarkee id field and bookmarkee type field and bookmarker id field and bookmarker type field unique index addition
    ###
    add_index :bookmarks, [:bookmarkee_id, :bookmarkee_type, :bookmarker_id, :bookmarker_type], name: "bookmarks_bookmarkee_bookmarker_idx", unique: true
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
bookmark_system-0.2.0 lib/generators/bookmark_system/templates/migration.rb