Sha256: 4822e1ed9cd435f866bb56714a0754a6091ce5b30f1011cce8f39164dc983ca4

Contents?: true

Size: 821 Bytes

Versions: 5

Compression:

Stored size: 821 Bytes

Contents

class CreateShortenedUrlsTable < ActiveRecord::Migration
  def change
    create_table :shortened_urls do |t|
      # we can link this to a user for interesting things
      t.integer :owner_id
      t.string :owner_type, :limit => 20

      # the real url that we will redirect to
      t.string :url, :null => false

      # the unique key
      t.string :unique_key, :limit => 10, :null => false

      # how many times the link has been clicked
      t.integer :use_count, :null => false, :default => 0

      t.timestamps
    end

    # we will lookup the links in the db by key, urls and owners.
    # also make sure the unique keys are actually unique
    add_index :shortened_urls, :unique_key, :unique => true
    add_index :shortened_urls, :url
    add_index :shortened_urls, [:owner_id, :owner_type]
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
shortener-0.3.1 lib/generators/shortener/templates/migration.rb
shortener-0.3.0 lib/generators/shortener/templates/migration.rb
shortener-0.2.0 lib/generators/shortener/templates/migration.rb
shortener-0.1.2 lib/generators/shortener/templates/migration.rb
shortener-0.1.1 lib/generators/shortener/templates/migration.rb