迁移上下文
MigrationContext
设置迁移运行的上下文。
迁移上下文需要在 migrations_paths
参数中设置迁移路径。可选地,可以提供 schema_migration
类。多个数据库应用程序将为每个数据库实例化一个 SchemaMigration
对象。从 Rake 任务中,Rails 将为您处理此操作。
方法
属性
[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 1214 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,则将返回一个空数组,并且不会运行任何迁移。
如果架构中的 current_version
大于 target_version
,则将运行 down
。
如果未满足任何条件,则将使用 target_version
运行 up
。
来源:显示 | 在 GitHub 上
# File activerecord/lib/active_record/migration.rb, line 1233 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