16
17
18
19
20
21
22
23
24
25
26
27
28
|
# File 'app/workers/good_job/dn_update_worker.rb', line 16
def perform(table_name, ids, update_statement, disable_triggers = true)
disable_trigger_statement = disable_triggers ? "SELECT set_config('psql_hq.skip_triggers.ALL', 'true', true);" : nil
inner_id_clause = "'#{ids.join("','")}'"
sql = <<~SQL
#{disable_trigger_statement}
UPDATE #{table_name}
SET #{update_statement}
WHERE #{table_name}.id IN (
#{inner_id_clause}
);
SQL
ActiveRecord::Base.connection.execute(sql)
end
|