Sha256: 8b344ca839f17ca1159b01bab55ea8d1c697eed2224dbe4eed4282bc13de5659

Contents?: true

Size: 1.13 KB

Versions: 4

Compression:

Stored size: 1.13 KB

Contents

class CreateActivityTable < ActiveRecord::Migration
  def table_name
    RestPack::Activity::Service.config.prefix_db_table(:activities)
  end

  def up
    create_table table_name do |t|
      t.integer :application_id
      t.integer :user_id
      t.string  :title
      t.text    :content
      t.text    :tag_list, :array => true, :default => []
      t.decimal :latitude, precision: 10, scale: 6, null: true
      t.decimal :longitude, precision: 10, scale: 6, null: true
      t.column  :search_vector, 'tsvector'
      t.json    :data
      t.timestamps
    end

    execute "CREATE INDEX #{table_name}_tag_list_index ON #{table_name} USING gin(tag_list)"
    execute "CREATE INDEX #{table_name}_search_index ON #{table_name} USING gin(search_vector)"
    execute "CREATE TRIGGER #{table_name}_vector_update BEFORE INSERT OR UPDATE
              ON #{table_name} FOR EACH ROW EXECUTE PROCEDURE
              tsvector_update_trigger(search_vector, 'pg_catalog.english', title, content);"
  end

  def down
    execute "DROP INDEX #{table_name}_tag_list_index"
    execute "DROP INDEX #{table_name}_search_index"
    drop_table table_name
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
restpack_activity_service-0.0.9 db/migrate/20130630145408_create_activity_table.rb
restpack_activity_service-0.0.8 db/migrate/20130630145408_create_activity_table.rb
restpack_activity_service-0.0.7 db/migrate/20130630145408_create_activity_table.rb
restpack_activity_service-0.0.5 db/migrate/20130630145408_create_activity_table.rb