Skip to content

Commit

Permalink
Fix db:data:* tasks
Browse files Browse the repository at this point in the history
  • Loading branch information
gridanjbf authored and tagliala committed Nov 8, 2021
1 parent 0df9a2e commit 5725762
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 9 deletions.
4 changes: 2 additions & 2 deletions lib/active_record/tasks/chronomodel_database_tasks.rb
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ def data_dump(target)
set_psql_env

args = ['-c', '-f', target.to_s]
args << configuration['database']
args << configuration[:database]

run_cmd "pg_dump", args, 'dumping data'
end
Expand All @@ -34,7 +34,7 @@ def data_load(source)
set_psql_env

args = ['-f', source]
args << configuration['database']
args << configuration[:database]

run_cmd "psql", args, 'loading data'
end
Expand Down
17 changes: 10 additions & 7 deletions lib/chrono_model/railtie.rb
Original file line number Diff line number Diff line change
@@ -1,8 +1,15 @@
require 'active_record/tasks/chronomodel_database_tasks'

module ChronoModel
class Railtie < ::Rails::Railtie

def task_config
if Rails.version < '6.1'
ActiveRecord::Tasks::DatabaseTasks.current_config.with_indifferent_access
else
ActiveRecord::Base.connection_db_config
end
end

rake_tasks do
if Rails.application.config.active_record.schema_format != :sql
raise 'In order to use ChronoModel, config.active_record.schema_format must be :sql!'
Expand All @@ -27,19 +34,15 @@ class Railtie < ::Rails::Railtie

desc "Dumps database into db/data.NOW.sql or file specified via DUMP="
task 'db:data:dump' => :environment do
config = ActiveRecord::Tasks::DatabaseTasks.current_config
target = ENV['DUMP'] || Rails.root.join('db', "data.#{Time.now.to_f}.sql")

tasks_class.new(config).data_dump(target)
tasks_class.new(task_config).data_dump(target)
end

desc "Loads database dump from file specified via DUMP="
task 'db:data:load' => :environment do
config = ActiveRecord::Tasks::DatabaseTasks.current_config
source = ENV['DUMP'].presence or
raise ArgumentError, "Invoke as rake db:data:load DUMP=/path/to/data.sql"

tasks_class.new(config).data_load(source)
tasks_class.new(task_config).data_load(source)
end
end

Expand Down

0 comments on commit 5725762

Please sign in to comment.