класс ActiveRecord::MigrationContext
Контекст миграции
MigrationContext задаёт контекст, в котором выполняется миграция.
Для контекста миграции необходимо установить путь к миграциям в параметре migrations_paths. Дополнительно можно предоставить класс schema_migration. Несколько баз данных будут создавать объект SchemaMigration для каждой базы данных. Из задач Rake Rails обрабатывает это за вас.
Атрибуты
Общедоступные методы класса
# File activerecord/lib/active_record/migration.rb, line 1217 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 1236
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.