Method: BridgeCache::Plugins::CSVDump.condition_sql
- Defined in:
- app/lib/bridge_cache/plugins/csv_dump.rb
.condition_sql(klass, columns) ⇒ Object
This method generates SQL that looks like: (users.sis_id, users.email) IS DISTINCT FROM (EXCLUDED.sis_id, EXCLUDED.email)
This prevents activerecord-import from setting the updated_at column for rows that haven’t actually changed. This allows you to query for rows that have changed by doing something like:
started_at = Time.now run_the_users_sync! changed = User.where(“updated_at >= ?”, started_at)
82 83 84 85 86 |
# File 'app/lib/bridge_cache/plugins/csv_dump.rb', line 82 def self.condition_sql(klass, columns) columns_str = columns.map { |c| "#{klass.quoted_table_name}.#{c}" }.join(', ') excluded_str = columns.map { |c| "EXCLUDED.#{c}" }.join(', ') "(#{columns_str}) IS DISTINCT FROM (#{excluded_str})" end |