MigrationContext
sets the context in which a migration is run.
A migration context requires the path to the migrations is set in the migrations_paths
parameter. Optionally a schema_migration
class can be provided. For most applications, SchemaMigration
is sufficient. Multiple database applications need a SchemaMigration
per primary database.
Methods
Attributes
[R] | migrations_paths | |
[R] | schema_migration |
Class Public methods
new(migrations_paths, schema_migration = SchemaMigration) Link
Instance Public methods
migrate(target_version = nil, &block) Link
Runs the migrations in the migrations_path
.
If target_version
is nil
, migrate
will run up
.
If the current_version
and target_version
are both 0 then an empty array will be returned and no migrations will be run.
If the current_version
in the schema is greater than the target_version
, then down
will be run.
If none of the conditions are met, up
will be run with the target_version
.
# File activerecord/lib/active_record/migration.rb, line 1089 def migrate(target_version = nil, &block) case when target_version.nil? up(target_version, &block) when current_version == 0 && target_version == 0 [] when current_version > target_version down(target_version, &block) else up(target_version, &block) end end