mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Extract method to the DatabaseTasks class
It make easier to find and elimite duplication inside that class.
This commit is contained in:
parent
936833fa3e
commit
95c540e4ed
2 changed files with 34 additions and 30 deletions
|
@ -354,36 +354,7 @@ db_namespace = namespace :db do
|
||||||
|
|
||||||
desc "Runs setup if database does not exist, or runs migrations if it does"
|
desc "Runs setup if database does not exist, or runs migrations if it does"
|
||||||
task prepare: :load_config do
|
task prepare: :load_config do
|
||||||
seed = false
|
ActiveRecord::Tasks::DatabaseTasks.prepare_all
|
||||||
|
|
||||||
ActiveRecord::Base.configurations.configs_for(env_name: ActiveRecord::Tasks::DatabaseTasks.env).each do |db_config|
|
|
||||||
ActiveRecord::Base.establish_connection(db_config)
|
|
||||||
|
|
||||||
# Skipped when no database
|
|
||||||
ActiveRecord::Tasks::DatabaseTasks.migrate
|
|
||||||
|
|
||||||
if ActiveRecord::Base.dump_schema_after_migration
|
|
||||||
ActiveRecord::Tasks::DatabaseTasks.dump_schema(db_config, ActiveRecord::Base.schema_format)
|
|
||||||
end
|
|
||||||
rescue ActiveRecord::NoDatabaseError
|
|
||||||
config_name = db_config.name
|
|
||||||
ActiveRecord::Tasks::DatabaseTasks.create_current(db_config.env_name, config_name)
|
|
||||||
|
|
||||||
if File.exist?(ActiveRecord::Tasks::DatabaseTasks.dump_filename(config_name))
|
|
||||||
ActiveRecord::Tasks::DatabaseTasks.load_schema(
|
|
||||||
db_config,
|
|
||||||
ActiveRecord::Base.schema_format,
|
|
||||||
nil
|
|
||||||
)
|
|
||||||
else
|
|
||||||
ActiveRecord::Tasks::DatabaseTasks.migrate
|
|
||||||
end
|
|
||||||
|
|
||||||
seed = true
|
|
||||||
end
|
|
||||||
|
|
||||||
ActiveRecord::Base.establish_connection
|
|
||||||
ActiveRecord::Tasks::DatabaseTasks.load_seed if seed
|
|
||||||
end
|
end
|
||||||
|
|
||||||
desc "Loads the seed data from db/seeds.rb"
|
desc "Loads the seed data from db/seeds.rb"
|
||||||
|
|
|
@ -194,6 +194,39 @@ module ActiveRecord
|
||||||
ActiveRecord::Base.establish_connection(environment.to_sym)
|
ActiveRecord::Base.establish_connection(environment.to_sym)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def prepare_all
|
||||||
|
seed = false
|
||||||
|
|
||||||
|
ActiveRecord::Base.configurations.configs_for(env_name: ActiveRecord::Tasks::DatabaseTasks.env).each do |db_config|
|
||||||
|
ActiveRecord::Base.establish_connection(db_config)
|
||||||
|
|
||||||
|
# Skipped when no database
|
||||||
|
ActiveRecord::Tasks::DatabaseTasks.migrate
|
||||||
|
|
||||||
|
if ActiveRecord::Base.dump_schema_after_migration
|
||||||
|
ActiveRecord::Tasks::DatabaseTasks.dump_schema(db_config, ActiveRecord::Base.schema_format)
|
||||||
|
end
|
||||||
|
rescue ActiveRecord::NoDatabaseError
|
||||||
|
config_name = db_config.name
|
||||||
|
ActiveRecord::Tasks::DatabaseTasks.create_current(db_config.env_name, config_name)
|
||||||
|
|
||||||
|
if File.exist?(ActiveRecord::Tasks::DatabaseTasks.dump_filename(config_name))
|
||||||
|
ActiveRecord::Tasks::DatabaseTasks.load_schema(
|
||||||
|
db_config,
|
||||||
|
ActiveRecord::Base.schema_format,
|
||||||
|
nil
|
||||||
|
)
|
||||||
|
else
|
||||||
|
ActiveRecord::Tasks::DatabaseTasks.migrate
|
||||||
|
end
|
||||||
|
|
||||||
|
seed = true
|
||||||
|
end
|
||||||
|
|
||||||
|
ActiveRecord::Base.establish_connection
|
||||||
|
ActiveRecord::Tasks::DatabaseTasks.load_seed if seed
|
||||||
|
end
|
||||||
|
|
||||||
def drop(configuration, *arguments)
|
def drop(configuration, *arguments)
|
||||||
db_config = resolve_configuration(configuration)
|
db_config = resolve_configuration(configuration)
|
||||||
database_adapter_for(db_config, *arguments).drop
|
database_adapter_for(db_config, *arguments).drop
|
||||||
|
|
Loading…
Reference in a new issue