class Shamu::Events::ActiveRecord::Migration

Prepare the database for storing event messages.

Public Instance Methods

down() click to toggle source
# File lib/shamu/events/active_record/migration.rb, line 38
def down
  drop_table Message.table_name if data_source_exists? Message.table_name
  drop_table Channel.table_name if data_source_exists? Channel.table_name
  drop_table Runner.table_name  if data_source_exists? Runner.table_name
end
up() click to toggle source
# File lib/shamu/events/active_record/migration.rb, line 10
def up
  return if data_source_exists? Message.table_name

  # TODO: Need to provide a means for using 64-bit primary keys in
  # databases that support it. Otherwise limited to 4B events.
  create_table Message.table_name do |t|
    t.integer :channel_id, null: false
    t.string  :message, null: false

    t.index :id
    t.index :channel_id
  end

  create_table Channel.table_name do |t|
    t.string :name, null: false, unique: true

    t.index :name
  end

  create_table Runner.table_name, id: false do |t|
    t.timestamp :last_processed_at
    t.integer   :last_processed_id
    t.string    :id, null: false

    t.index :id, unique: true
  end
end