Module: SafePgMigrations::Helpers::VolatileDefault

Defined in:
lib/safe-pg-migrations/helpers/volatile_default.rb

Constant Summary collapse

VOLATILE_DEFAULT_PATTERNS =
[
  /\bclock_timestamp\s*\(/i,
  /\bnow\s*\(/i,
  /\bcurrent_timestamp\b/i,
  /\bcurrent_time\b/i,
  /\bcurrent_date\b/i,
  /\brandom\s*\(/i,
  /\buuid_generate/i,
  /\bgen_random_uuid\s*\(/i,
  /\btimeofday\s*\(/i,
  /\btransaction_timestamp\s*\(/i,
  /\bstatement_timestamp\s*\(/i,
  /\bnextval\s*\(/i,
  /\bgen_random_bytes\s*\(/i,
].freeze

Class Method Summary collapse

Class Method Details

.volatile_default?(default) ⇒ Boolean

Returns:

  • (Boolean)


24
25
26
27
28
29
30
# File 'lib/safe-pg-migrations/helpers/volatile_default.rb', line 24

def volatile_default?(default)
  return false if default.nil?
  return true if default.is_a?(Proc)
  return false unless default.is_a?(String)

  VOLATILE_DEFAULT_PATTERNS.any? { |pattern| default.match?(pattern) }
end