Class/Module Index [+]

Quicksearch

Sequel::IntegerMigrator

The default migrator, recommended in most cases. Uses a simple incrementing version number starting with 1, where missing or duplicate migration file versions are not allowed. Part of the migration extension.

Attributes

current[R]

The current version for this migrator

direction[R]

The direction of the migrator, either :up or :down

migrations[R]

The migrations used by this migrator

Public Class Methods

new(db, directory, opts={}) click to toggle source

Set up all state for the migrator instance

# File lib/sequel/extensions/migration.rb, line 505
def initialize(db, directory, opts={})
  super
  @target = opts[:target] || latest_migration_version
  @current = opts[:current] || current_migration_version

  raise(Error, "No current version available") unless current
  raise(Error, "No target version available, probably because no migration files found or filenames don't follow the migration filename convention") unless target

  @direction = current < target ? :up : :down
  @migrations = get_migrations
end

Public Instance Methods

is_current?() click to toggle source

The integer migrator is current if the current version is the same as the target version.

# File lib/sequel/extensions/migration.rb, line 518
def is_current?
  current_migration_version == target
end
run() click to toggle source

Apply all migrations on the database

# File lib/sequel/extensions/migration.rb, line 523
def run
  migrations.zip(version_numbers).each do |m, v|
    t = Time.now
    lv = up? ? v : v + 1
    db.log_info("Begin applying migration version #{lv}, direction: #{direction}")
    checked_transaction(m) do
      m.apply(db, direction)
      set_migration_version(v)
    end
    db.log_info("Finished applying migration version #{lv}, direction: #{direction}, took #{sprintf('%0.6f', Time.now - t)} seconds")
  end
  
  target
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.