класс ActiveRecord::MigrationContext
MigrationContext задаёт контекст, в котором выполняется миграция.
Для контекста миграции необходимо задать путь к миграциям в параметре migrations_paths. Дополнительно можно указать класс schema_migration. Для большинства приложений достаточно SchemaMigration. Несколько баз данных приложения требуют SchemaMigration на первичную базу данных.
Атрибуты
Публичные методы класса
# File activerecord/lib/active_record/migration.rb, line 1070 def initialize(migrations_paths, schema_migration = SchemaMigration) @migrations_paths = migrations_paths @schema_migration = schema_migration end
Публичные методы экземпляра
# File activerecord/lib/active_record/migration.rb, line 1088
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.