Sha256: e2503ffa90d0eb12cf87c64614d28b9004b703f4bcba679da54c600dd2a0d093

Contents?: true

Size: 1.35 KB

Versions: 9

Compression:

Stored size: 1.35 KB

Contents

module Shamu
  module Events
    module ActiveRecord

      # Prepare the database for storing event messages.
      class Migration < ::ActiveRecord::Migration[5.0]

        self.verbose = false

        # rubocop:disable Metrics/MethodLength

        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

        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

      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
shamu-0.0.21 lib/shamu/events/active_record/migration.rb
shamu-0.0.20 lib/shamu/events/active_record/migration.rb
shamu-0.0.19 lib/shamu/events/active_record/migration.rb
shamu-0.0.18 lib/shamu/events/active_record/migration.rb
shamu-0.0.17 lib/shamu/events/active_record/migration.rb
shamu-0.0.15 lib/shamu/events/active_record/migration.rb
shamu-0.0.14 lib/shamu/events/active_record/migration.rb
shamu-0.0.13 lib/shamu/events/active_record/migration.rb
shamu-0.0.11 lib/shamu/events/active_record/migration.rb