Spec-Zone.ru › Ruby on Rails 7.2

класс ActiveRecord::MigrationContext

Родитель:
Объект

Контекст миграции

MigrationContext задаёт контекст, в котором выполняется миграция.

Для контекста миграции необходимо установить путь к миграциям в параметре migrations_paths. Дополнительно можно предоставить класс schema_migration. Несколько баз данных будут создавать объект SchemaMigration для каждой базы данных. Из задач Rake Rails обрабатывает это за вас.

Атрибуты

internal_metadata[R]
migrations_paths[R]
schema_migration[R]

Общедоступные методы класса

new(migrations_paths, schema_migration = nil, internal_metadata = nil) Показать исходный код
# 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

Общедоступные методы экземпляра

migrate(target_version = nil, &block) Показать исходный код
# 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API