class Production
Constants
- VERSION
Public Class Methods
connection()
click to toggle source
# File lib/production.rb, line 29 def self.connection @connection || :production end
connection=(conn)
click to toggle source
# File lib/production.rb, line 33 def self.connection=(conn) @connection = conn end
pull_to_development(*classes)
click to toggle source
# File lib/production.rb, line 56 def self.pull_to_development(*classes) classes.flatten.each do |klass| prod_klass = wrap(klass) cleaner = DatabaseCleaner::Base.new(:active_record, connection: klass) cleaner.clean_with(:truncation, only: [ klass.table_name ]) klass.transaction do prod_klass.find_each do |i| klass.new.tap do |j| j.assign_attributes(i.attributes, without_protection: true) end.save! end end end end
push_from_development(*classes)
click to toggle source
# File lib/production.rb, line 41 def self.push_from_development(*classes) classes.flatten.each do |klass| prod_klass = wrap(klass) cleaner = DatabaseCleaner::Base.new(:active_record, connection: prod_klass) cleaner.clean_with(:truncation, only: [ prod_klass.table_name ]) prod_klass.transaction do klass.find_each do |i| prod_klass.new.tap do |j| j.assign_attributes(i.attributes, without_protection: true) end.save! end end end end
wrap(klass)
click to toggle source
# File lib/production.rb, line 37 def self.wrap(klass) Class.new(klass).tap { |c| c.establish_connection(connection) } end