class ActiveRecord::MigrationContext
Контекст миграции
MigrationContext задаёт контекст, в котором выполняется миграция.
Для контекста миграции необходимо указать путь к миграциям в параметре migrations_paths. При необходимости можно указать класс schema_migration. Приложения с несколькими базами данных создают объект SchemaMigration для каждой базы данных. В задачах Rake Rails сделает это за вас.
Атрибуты
Открытые методы класса
# File activerecord/lib/active_record/migration.rb, line 1223 def initialize(migrations_paths, schema_migration = nil, internal_metadata = nil) @migrations_paths = migrations_paths @schema_migration = schema_migration || SchemaMigration.new(connection_pool) @internal_metadata = internal_metadata || InternalMetadata.new(connection_pool) end
Открытые методы экземпляра
# File activerecord/lib/active_record/migration.rb, line 1242
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 Выполняет миграции в migrations_path.
Если target_version равно nil, migrate выполнит up.
Если и current_version, и target_version равны 0, будет возвращён пустой массив, и миграции выполняться не будут.
Если current_version в схеме больше, чем target_version, будет выполнен down.
Если ни одно из условий не выполнено, up будет выполнен с target_version.
© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.