FIX: don't remap readonly columns

This commit is contained in:
Régis Hanol 2019-05-03 20:30:23 +02:00
parent d82da69c2c
commit bfcbfd7864

View File

@ -9,12 +9,23 @@ class DbHelper
ORDER BY table_name, column_name ORDER BY table_name, column_name
SQL SQL
TRIGGERS_SQL ||= <<~SQL
SELECT trigger_name
FROM information_schema.triggers
WHERE trigger_name LIKE '%_readonly'
SQL
def self.remap(from, to, anchor_left: false, anchor_right: false, excluded_tables: []) def self.remap(from, to, anchor_left: false, anchor_right: false, excluded_tables: [])
like = "#{anchor_left ? '' : "%"}#{from}#{anchor_right ? '' : "%"}" like = "#{anchor_left ? '' : "%"}#{from}#{anchor_right ? '' : "%"}"
triggers = DB.query(TRIGGERS_SQL).map(&:trigger_name).to_set
text_columns = Hash.new { |h, k| h[k] = [] } text_columns = Hash.new { |h, k| h[k] = [] }
DB.query(REMAP_SQL).each do |r| DB.query(REMAP_SQL).each do |r|
text_columns[r.table_name] << r.column_name unless triggers.include?("#{r.table_name}_#{r.column_name}_readonly")
text_columns[r.table_name] << r.column_name
end
end end
text_columns.each do |table, columns| text_columns.each do |table, columns|
@ -39,10 +50,14 @@ class DbHelper
end end
def self.regexp_replace(pattern, replacement, flags: "gi", match: "~*", excluded_tables: []) def self.regexp_replace(pattern, replacement, flags: "gi", match: "~*", excluded_tables: [])
triggers = DB.query(TRIGGERS_SQL).map(&:trigger_name).to_set
text_columns = Hash.new { |h, k| h[k] = [] } text_columns = Hash.new { |h, k| h[k] = [] }
DB.query(REMAP_SQL).each do |r| DB.query(REMAP_SQL).each do |r|
text_columns[r.table_name] << r.column_name unless triggers.include?("#{r.table_name}_#{r.column_name}_readonly")
text_columns[r.table_name] << r.column_name
end
end end
text_columns.each do |table, columns| text_columns.each do |table, columns|