diff options
author | eileencodes <eileencodes@gmail.com> | 2018-03-16 14:44:20 -0400 |
---|---|---|
committer | eileencodes <eileencodes@gmail.com> | 2018-03-21 14:00:58 -0400 |
commit | 0f0aa6a275876502e002c054896734d6536ba5cd (patch) | |
tree | 9b6d14d4eddc7ea9fab3450f9c83dd6ec39653cb /activerecord/lib/active_record/tasks/database_tasks.rb | |
parent | 5eb4488d02fd975ff5c387a8697fc58cca28b9b4 (diff) | |
download | rails-0f0aa6a275876502e002c054896734d6536ba5cd.tar.gz rails-0f0aa6a275876502e002c054896734d6536ba5cd.tar.bz2 rails-0f0aa6a275876502e002c054896734d6536ba5cd.zip |
Update schema/structure dump tasks for multi db
Adds the ability to dump the schema or structure files for mulitple
databases. Loops through the configs for a given env and sets a filename
based on the format, then establishes a connection for that config and
dumps into the file.
Diffstat (limited to 'activerecord/lib/active_record/tasks/database_tasks.rb')
-rw-r--r-- | activerecord/lib/active_record/tasks/database_tasks.rb | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/activerecord/lib/active_record/tasks/database_tasks.rb b/activerecord/lib/active_record/tasks/database_tasks.rb index 705a28eef5..e2c292ee56 100644 --- a/activerecord/lib/active_record/tasks/database_tasks.rb +++ b/activerecord/lib/active_record/tasks/database_tasks.rb @@ -252,14 +252,28 @@ module ActiveRecord end def schema_file(format = ActiveRecord::Base.schema_format) + File.join(db_dir, schema_file_type(format)) + end + + def schema_file_type(format = ActiveRecord::Base.schema_format) case format when :ruby - File.join(db_dir, "schema.rb") + "schema.rb" when :sql - File.join(db_dir, "structure.sql") + "structure.sql" end end + def dump_filename(namespace, format = ActiveRecord::Base.schema_format) + filename = if namespace == "primary" + schema_file_type(format) + else + "#{namespace}_#{schema_file_type(format)}" + end + + ENV["SCHEMA"] || File.join(ActiveRecord::Tasks::DatabaseTasks.db_dir, filename) + end + def load_schema_current(format = ActiveRecord::Base.schema_format, file = nil, environment = env) each_current_configuration(environment) { |configuration, spec_name, env| load_schema configuration, format, file, env |