迁移上下文¶ ↑
MigrationContext 在迁移运行时设置上下文。
迁移上下文需要在 migrations_paths 参数中设置迁移路径。可选地,可以提供一个 schema_migration 类。多数据库应用程序将为每个数据库实例化一个 SchemaMigration 对象。对于 Rake 任务,Rails 会为您处理此问题。
方法
Attributes
| [R] | internal_metadata | |
| [R] | migrations_paths | |
| [R] | schema_migration |
类公共方法
new(migrations_paths, schema_migration = nil, internal_metadata = nil) 链接
来源: 显示 | 在 GitHub 上
# 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
实例公共方法
migrate(target_version = nil, &block) 链接
在 migrations_path 中运行迁移。
如果 target_version 为 nil,则 migrate 将运行 up。
如果 current_version 和 target_version 都为 0,则将返回一个空数组,并且不会运行任何迁移。
如果 schema 中的 current_version 大于 target_version,则将运行 down。
如果不满足以上任何条件,则将使用 target_version 运行 up。
来源: 显示 | 在 GitHub 上
# 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