mirror of
https://github.com/github/rails.git
synced 2026-04-26 03:00:59 -04:00
Allow AR::Schema's migrations_path to be overwritten by subclasses. Defaults to 'db/migrate'
[#3671 state:committed] Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net>
This commit is contained in:
committed by
Jeremy Kemper
parent
802b08da00
commit
652d1c19ea
@@ -344,12 +344,12 @@ module ActiveRecord
|
||||
end
|
||||
end
|
||||
|
||||
def assume_migrated_upto_version(version)
|
||||
def assume_migrated_upto_version(version, migrations_path = ActiveRecord::Migrator.migrations_path)
|
||||
version = version.to_i
|
||||
sm_table = quote_table_name(ActiveRecord::Migrator.schema_migrations_table_name)
|
||||
|
||||
migrated = select_values("SELECT version FROM #{sm_table}").map(&:to_i)
|
||||
versions = Dir['db/migrate/[0-9]*_*.rb'].map do |filename|
|
||||
versions = Dir["#{migrations_path}/[0-9]*_*.rb"].map do |filename|
|
||||
filename.split('/').last.split('_').first.to_i
|
||||
end
|
||||
|
||||
|
||||
@@ -407,6 +407,10 @@ module ActiveRecord
|
||||
self.new(direction, migrations_path, target_version).run
|
||||
end
|
||||
|
||||
def migrations_path
|
||||
'db/migrate'
|
||||
end
|
||||
|
||||
def schema_migrations_table_name
|
||||
Base.table_name_prefix + 'schema_migrations' + Base.table_name_suffix
|
||||
end
|
||||
|
||||
@@ -28,6 +28,10 @@ module ActiveRecord
|
||||
class Schema < Migration
|
||||
private_class_method :new
|
||||
|
||||
def self.migrations_path
|
||||
ActiveRecord::Migrator.migrations_path
|
||||
end
|
||||
|
||||
# Eval the given block. All methods available to the current connection
|
||||
# adapter are available within the block, so you can easily use the
|
||||
# database definition DSL to build up your schema (+create_table+,
|
||||
@@ -44,7 +48,7 @@ module ActiveRecord
|
||||
|
||||
unless info[:version].blank?
|
||||
initialize_schema_migrations_table
|
||||
assume_migrated_upto_version info[:version]
|
||||
assume_migrated_upto_version(info[:version], migrations_path)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user