Module: ActiveRecord::SaferMigrations::PostgreSQLAdapter

Defined in:
lib/active_record/safer_migrations/postgresql_adapter.rb

Constant Summary collapse

SET_SETTING_SQL =
<<-SQL
UPDATE
  pg_settings
SET
  setting = :value
WHERE
  name = :setting_name
SQL
GET_SETTING_SQL =
<<-SQL
SELECT
  setting
FROM
  pg_settings
WHERE
  name = :setting_name
SQL

Instance Method Summary collapse

Instance Method Details

#fill_sql_values(sql, values) ⇒ Object



35
36
37
38
39
40
41
# File 'lib/active_record/safer_migrations/postgresql_adapter.rb', line 35

def fill_sql_values(sql, values)
  if ActiveRecord.version >= "7.2.0"
    ActiveRecord::Base.send(:replace_named_bind_variables, self, sql, values)
  else
    ActiveRecord::Base.send(:replace_named_bind_variables, sql, values)
  end
end

#get_setting(setting_name) ⇒ Object



29
30
31
32
33
# File 'lib/active_record/safer_migrations/postgresql_adapter.rb', line 29

def get_setting(setting_name)
  sql = fill_sql_values(GET_SETTING_SQL, setting_name: setting_name)
  result = execute(sql)
  result.first["setting"]
end

#set_setting(setting_name, value) ⇒ Object



24
25
26
27
# File 'lib/active_record/safer_migrations/postgresql_adapter.rb', line 24

def set_setting(setting_name, value)
  sql = fill_sql_values(SET_SETTING_SQL, value: value, setting_name: setting_name)
  execute(sql)
end