class Backhoe::MysqlSkipColumns::SanitizedDatabase
Public Instance Methods
dump() { |skip_tables| ... }
click to toggle source
# File lib/backhoe/mysql.rb, line 50 def dump with_sanitized_tables do yield skip_tables end skip_tables.each do |table| File.write file_path, "RENAME TABLE `sanitized_#{table}` TO `#{table}`;", mode: "a" end end
Private Instance Methods
skip_tables()
click to toggle source
# File lib/backhoe/mysql.rb, line 61 def skip_tables config.keys end
sql(queries)
click to toggle source
# File lib/backhoe/mysql.rb, line 85 def sql queries queries.split(";").select(&:present?).each do |query| ActiveRecord::Base.connection.execute query end end
with_sanitized_tables() { || ... }
click to toggle source
# File lib/backhoe/mysql.rb, line 65 def with_sanitized_tables ActiveRecord::Base.transaction do config.each do |table, columns| sanitized_table = "sanitized_#{table}" sql <<-SQL DROP TABLE IF EXISTS `#{sanitized_table}`; CREATE TABLE `#{sanitized_table}` LIKE `#{table}`; INSERT INTO `#{sanitized_table}` SELECT * FROM `#{table}`; ALTER TABLE `#{sanitized_table}` #{columns.map { |column| "DROP `#{column}`" }.join(", ")}; SQL end yield config.each do |table, _| sql "DROP TABLE `sanitized_#{table}`" end end end